在第一篇中,我们为大家介绍了如何用VC6进行断点调试,可以实现程序的分步执行。今天我们将继续深入,进行更多断点调试的学习。

首先,写一个例子程序:

#include

int fun()

{

printf("Welcome to C language Reserch Center\n");

return 0;

}

int main()

{

int i=0;

int sum=0;

fun();

while(i++<100)

{

sum+=i;

}

printf("1+2+3+...+99+100 = %d\n",sum);

return 0;

}

大家可以先行阅读以下程序,比较简单,调用一个自定义函数输出一句话,其二,计算1+2一直加到100的和并输出。

然后,我们做练习,运用上节课的断点调试逐步跟我们这个程序。

首先,我们在第一行int i=0;这里设置一个断点,运行它,如图:

注意看到,黑框里什么都没有输出,并且下方的变量监视里i的值还是垃圾值,因为还未执行这句话。

然后我们F10下一步执行。但当大家执行到fun();函数调用这条语句时,编译器把它当成一句话来执行,并未进入函数内部,而是一步带过,如图:

大家可自行上机实验,可以发现F10单步执行的单步是以一条C语言语句为单位的。鉴于这种情况,当我们怀疑fun函数时如何调试呢?

除了可以在fun函数内部设置断点以外,我们还有一个办法,就是不按F10,而按F11,F11的意思是单步执行并介入,也就是说遇到单出的一句话就和F10没什么区别了,但如果是函数调用这种还能“进入”的语句,它就会逐层深入进去!大家能理解吗?

那我们来试一试,重新开始,回到程序一开始的断点处,在黄色箭头指向到fun()时,按F11,大家注意观察!

黄色的箭头会进入fun函数内部,如图:

然后可以逐步跟踪fun函数内部的语句了! 怎么样?试试吧

当然,这里提示一下,对于我们想深入研究的函数我们可以F11介入一探究竟,但如果一直F11的话可能会一直深入程序底层可能按不出来哦!另外,对于printf这种库函数,如果还按F11的话,由于printf已经编译好,只能看到printf的汇编语句。所以大家还是根据情况按F10还是F11哦!

由于大家在实际的开发工作当中,程序往往比我们的例子程序复杂很多,比如多个函数、嵌套、库函数调用等等,也有误进入函数内部,或者已经排查没有问题的,如果想尽早结束此函数退出回到上一层调用处,如何实现呢?答案是:按shift+F11,既可以跳出函数,返回到当前断点函数调用的下一步。

好的,讲到这里,大家请自行实验,熟练掌握F10和F11以及shift+F11的混合使用!

请大家亲自上机实验!

以上

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

c语言 vc 单步调试方法,VC6断点调试技巧相关推荐

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

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

  2. c语言程序跟踪调试,VC6断点调试之监视变量

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

  3. c语言程序只能调试成功一半,c语言程序的调试方法所谓程序调试是指对程序的查错和排错。调试程序一般应经过以下几个步骤:一、先进行人工检查,即静态检查。在写好一个程序以后,不要匆匆忙忙...

    c语言程序的调试方法 所谓程序调试是指对程序的查错和排错. 调试程序一般应经过以下几个步骤: 一.先进行人工检查,即静态检查. 在写好一个程序以后,不要匆匆忙忙上机,而应对程序进行人工检查.这一步十分 ...

  4. as的断点调试与高级断点调试

    <div class="markdown_views"><blockquote> 有人说Android 的调试是最坑的,那我只能说是你不会用而已,我可以说A ...

  5. 调试笔记--keil 断点调试小技巧

    调试笔记–keil 断点调试小技巧 给变量打断点 调试不熟悉的项目时,卧槽!怎么这么多全局变量?这玩意又在那修改了??这个时候会给变量打断点就能省好多事. 将要监视的全局变量添加到watch窗口 选中 ...

  6. python单步调试的方法_python断点调试方法

    pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点.单步调试.进入函数调试.查看当前代码.查看栈片段.动态改变变量的值等.pdb 提供了 ...

  7. python linux 单步调试,python的断点调试

    python的断点调试(转自:http://control.blog.sina.com.cn/admin/article/article_add.php) pdb这个功能好牛啊,可以在命令行设置也可以 ...

  8. 笔记整理2----Java语言基础(二)06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础

    06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础 第06天 java基础语法 今日内容介绍  Eclipse断点调试  基 ...

  9. 7 php程序的调试方法_php程序调试方法总结

    相信很多朋友们都有调试程序的经历,然而很多时候调试程序是痛苦而又漫长的过程:它不仅需要细心,更需要耐心,切忌心浮气躁.但是当找出问题并顺利 解决它时,又会给人无比激动的喜悦.这里总结一下笔者在程序调试 ...

最新文章

  1. luogu P3203 [HNOI2010]弹飞绵羊(LCT ? 暴力分块 ! )
  2. Zabbi监控系统搭建
  3. PHP|异常的使用,异常子类化的最佳实践
  4. servlet中弹出网页对话框
  5. 小程序和app用什么样的服务器,小程序和APP的本质区别是什么?哪个更值得开发?...
  6. PHP5异常处理,PHP5异常处理分析实例
  7. 玩转 SpringBoot 2.x 之自定义 Banner 日志输出原理篇
  8. Android微信分享功能实例+demo
  9. 补全缺失的64位dll,0xc000007b
  10. threejs中引入draco压缩后的模型
  11. 红米pro位置服务器,数码产品:红米note8pro nfc感应区在哪 nfc位置
  12. Unknown error finalizing or resetting statement (5: database is locked)
  13. poj 2955 区间dp
  14. 广州男子花12万买新车 保养时被告知车门被撬开维修过
  15. N型半导体和P型半导体
  16. 工具 | Codeblock下载与安装及使用
  17. 那些年收藏的技术文章(一)-CSDN篇
  18. 计算机网络能传递的信息是什么,计算机网络的功能是什么?
  19. 高等代数 矩阵的相抵和相似(第5章)2 相似,特征值与特征向量,对角化
  20. VB超级模块函数:VB读写记事本-防止乱码支持UTF-8和GB2312编码

热门文章

  1. 【编写可读代码的艺术】读书小记 二: 简化循环和逻辑
  2. 高中信息技术python及答案_高中信息技术Python编程教学
  3. Linux的基本学习(十)——账号管理与ACL权限设置
  4. Redis面试题-Redis跳跃表
  5. laravel 代码维护, 使用php artisan使用应用程序处于维护状态,
  6. 阿里巴巴为什么能抗住双十一?看完这篇你就明白了!
  7. 计算机B的IP地址是,一个B类IP地址172.16.1.0,划分八个子网,计算分配各子网有效地址和最大计算机数...
  8. 绿色djvu阅读软件
  9. 新增表单元素和表单属性
  10. CTF-Show密码学【摩斯码、培根密码】