2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 软件应用 > 开发工具(IDE)

VC6断点调试之如何下断点(下)

时间:12-12来源:作者:点击数:27

在上一篇中,我们为大家介绍了如何用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;这里设置一个断点,运行它,如图:

VC6断点调试之如何下断点(下)

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

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

VC6断点调试之如何下断点(下)

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

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

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

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

VC6断点调试之如何下断点(下)

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

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

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

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

请大家亲自上机实验!

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐