前言:
看到不少同学在学习过程中总会碰到各种与自己期望不符的结果而不知所措,如运行结果不对,程序运行崩溃、输出乱码等这种语法正确编译能通过而逻辑不正确的情况,发生这类问题大多都是因为我们无法掌控编译器和预测程序运行过程导致的,使得程序在执行过程中已经发生问题而没有被我们发觉。而最好的解决办法就是断点调试!
本文将带领大家以VC6编译器为例,学习如何断点分析和调试我们的C程序,让大家具备基本的断点调试能力!
以下正文:
当程序运行起的瞬间,程序就会马上退出,感应快的你可能会看到一个一闪而过的黑窗口以及似乎有点内容的输出。这就是一个程序的从生到死的过程,快如闪电丫。
那么,我们如何让程序不一次性执行完,定格在莫一处呢? 特别是对于查找问题,调试bug。如果当你意识到这些问题时,断点调试这个技巧你就应该马上掌握了!
断点第一步:设置断点(什么是断点?就是程序停止、断开的一个位置),将鼠标放到你想要程序停止的位置点击一下,然后按F9键,如下图
会看到一个深红色的大圆点!这个就是“断点”了,这个时候,当在调试情况下运行这个程序的时候,程序执行时就会停在这里。怎么样?不信,那就试试,按F5键
怎么样,看到了吗?程序现在没结束,甚至一句话都没输出呢!(应该输出100行www.dotcpp.com)
而原来大红色的圆点上还多了一个黄色的箭头!什么意思呢?这个黄色的箭头就是表示程序将要执行的语句!
也就是说接下来要执行这个printf,但还没有执行!所以屏幕上一句输出也没有!
接下来,继续按F5向下执行,直到遇到下一个断点,此时屏幕上会输出一行www.dotcpp.com,如图
同时请注意,下方i的值已经变成了1!,这说明循环已经执行了一次!
大家可以继续按F5继续执行,继续观察变化!
如果希望结束断点的话,可以在断点所在行,继续点击一下鼠标左键即可取消断点,再按F5即可和正常一样执行完程序。
怎么样,会了吗?
当然还没结束,除了设置断点F5继续执行以外,还可以单步执行,快捷键F10,怎么用呢?
还是这个程序,第一次F5以后,也可以按F10单步执行一句,发现黄色箭头往下走一行,同时屏幕多输出一句话。效果如图:
大家可以自行尝试,可以F10一直逐行单步执行。同时注意观察下方变量的变化情况,来加深对程序执行过程的理解!
请同学们熟练掌握F5、F9、F10快捷键的使用方法,配合程序,观察变量、函数返回值等信息的变化情况,加深对程序的理解!