上两讲中,为大家介绍到了VC6编译器的断点调试技巧,教给大家如何设置\取消断点、单步和跟踪一个程序。让大家具备基本的调试一个程序的能力。今天我们将继续深入研究教大家如何更细致、深入的跟踪和分析一个C程序。

下面进入正文,对于一个有“问题”待分析的程序,我们断点的目的是为了追溯程序的执行过程,跟踪程序的动态执行过程,从而排查错误来解决问题。所以实际开发工作中,对于一些较复杂的程序,我们很多情况断点跟踪程序是为了获得某一断点情况下的程序状态,这个状态就包括程序中的变量、返回值、判断条件等内容。这就要用到关于用到一些新技巧。就包括:内存监视等内容。

看一个例子程序,计算1+2+…+99+100的和的程序,代码如下:

当敲下这些代码,确认思路没有问题后,编译运行后确发现结果出人意料:

不少同学纷纷跑来求助,问:为什么是这种情况?怎么想怎么不对。这个时候除了用到断点,内存监视就派上用场了,由于这个程序的输出是循环完毕后一起输出,中途没有变量记录,那我们为了找出原因,只有断点的同时监视内存中的数据来实现调试。具体如下:

设置断点后,运行起来,点击工具栏:View debug – Windows – Variables或者按快捷键alt+4即可弹出变量监视框,如下图:

这时会打开这个程序当中已经定义好的变量以及对应的值,可以清楚的看到a和sum对应的值是垃圾值。即便F10继续执行,sum会被更改,但sum和a的值依旧为垃圾值。

到此时的同学,应该很明显的发现a和sum的值有问题,进行代码排查了!

额外的,如果有其他值(比如数组)没有在变量监视中显示出来,我们可以打开View debug – Windows – Watch打开监视区,输入想要监视的值也可以。甚至包括取地址等内容,如图:

以上变量跟踪、监视,应对绝大多数C语言练习题、已经足够,希望大家熟练掌握。加深最自己写的程序的掌握,从而理解程序执行流程,做到心中胸有成竹!

祝:顺利!

C语言研究中心(www.dotcpp.com)

C语言网, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明VC6断点调试之监视变量!

c语言程序跟踪调试,VC6断点调试之监视变量相关推荐

  1. c语言程序调试断点,VC6断点调试技巧

    前言: 看到不少同学在学习过程中总会碰到各种与自己期望不符的结果而不知所措,如运行结果不对,程序运行崩溃.输出乱码等这种语法正确编译能通过而逻辑不正确的情况,发生这类问题大多都是因为我们无法掌控编译器 ...

  2. c语言 vc 单步调试方法,VC6断点调试技巧

    在第一篇中,我们为大家介绍了如何用VC6进行断点调试,可以实现程序的分步执行.今天我们将继续深入,进行更多断点调试的学习. 首先,写一个例子程序: #include int fun() { print ...

  3. python学习-代码调试(通过print调试、通过pdb调试、通过编译器调试(断点调试))

    文章目录 通过print调试 通过pdb调试 通过编译器调试(断点调试) 通过print调试 首先我这里写了一段代码,保存列表中的偶数,然后返回列表,在函数执行后,我对函数结果进行打印. 见代码: l ...

  4. c语言中的语义错误和语法错误,C语言程序中对错误的调试

    程序调试 现在我们已经可以编写一个简单的 C语言程序了,但是你可能会犯一些简单的错误.程序的错误通常叫做 bug,而发现和修正这些错误的过程叫做调试.下面有一个带有一些错误的程序,看看你能找出多少. ...

  5. Java断点调试 idea断点调试 debug教程

    IDEA断点调试 Java程序断点调试 文章目录 IDEA断点调试 Java程序断点调试 前言 一.什么情况下需要debug 二.使用idea如何进行debug 三.假设案例分别进行debug教程 1 ...

  6. iOS调试技巧-断点调试

    Condational Breakpoints(条件断点) 普通断点只要执行到断点所在行就会停止程序,但是有时候我们想当满足一定条件时才停止程序.这个调试技巧在当你想要捕获一个循环中的变量的特定值或者 ...

  7. vs单步调试及断点调试基本介绍(入门版详细图文介绍)

    简述:本文面向小萌新介绍visual studio2022下的基本调试技巧(其他主流IDE均相似,仅具体快捷键键位不同) //本文无废话,建议小萌新仔细阅读 // //本文无废话,建议小萌新仔细阅读 ...

  8. vs单步调试及断点调试基本介绍

    参考博客原址:https://blog.csdn.net/qq_43444947/article/details/104480128 简述:本文面向小萌新简单描述visual studio2019下的 ...

  9. 学C的第一天(初识C语言、VS创建C语言程序、数据类型简单了解、简单了解变量)

    =========================================================================  相关代码gitee自取:C语言学习日记: 加油努力 ...

最新文章

  1. Linux后台运行和关闭程序、查看后台任务
  2. iOS相册实现与AssetsLibrary框架使用
  3. 关于计算机航天生物的想像作文,未来的航天器想象作文750字
  4. 前端学习(1967)vue之电商管理系统电商系统之切换面板获取
  5. svga文件预览_Shu文件预览
  6. 如何把google日历添加到桌面
  7. Elasticsearch - unmapped_type容错【某个不存在的字段、查询某个没有默认值的字段】
  8. python turtle绘制漫天雪花_科赫雪花渲染时间(以及如何使用海龟绘制雪花)
  9. thinkphp5 自定义分页样式
  10. halo_回顾:Halo 3与糖尿病抗争
  11. 红米手机开启---开发者选项方法
  12. NEC协议红外遥控器
  13. 函数(详解)——C语言
  14. 【SCSS】1300- 这些 SCSS 使用技巧真好用~
  15. Android-如何自定义crash处理器
  16. iPhone Plus手机的分辨率到底是多少,是1080×1920还是1242×2208?
  17. 【C语言】通讯录实现
  18. 与Anthony Baldino一起塑造声音
  19. 贝尔生物再度备战上市:拟赴上交所主板IPO,已实现连续盈利
  20. TiDB函数和操作符

热门文章

  1. 百度网盘AI大赛-图像处理挑战赛:文档检测优化赛 Baseline
  2. chrome扩展程序科学_扩展科学知识的最佳网站
  3. 浅析系统性思维——新书《系统思维的艺术》解读(下)
  4. java最新手机号正则校验
  5. 8g内存和16g内存区别 mac_苹果电脑内存8g和16g的区别 电脑内存8G和16G的差别大吗...
  6. 全国青少年软件编程等级考试C语言标准解读(1_10级)
  7. rg1 蓝光危害rg0_新国标:你的LED台灯防蓝光危害评估结果是RG0吗?
  8. 借助 ONLYOFFICE 宏通过 OpenAI 数据填充单元格
  9. 小区挤不挤?来看用ArcGIS计算小区的容积率(附练习数据下载)
  10. arcgis字段取最大值 公式_一蹴而就 丨 借用ArcGIS快速计算地块容积率