c语言中的调试技巧是程序员必须学会的一个技巧,在学习前我们先了解一下,Debug和Release
Debug通常作为调试版本,不会做任何的优化.
Release称为发布版本,通常会做很多种优化,使得程序代码大小和运行上都最优.
来举例说明一下比如说,相同的两个代码,都数组越界了,但是在Debug会警告,但是在Release上会自动优化,不会警告
这就是区别了.
然后, 最常使用的几个快捷键:
F5
启动调试,经常用来直接调到下一个断点处。
F9
创建断点和取消断点 断点的重要作用,可以在程序的任意位置设置断点。这样就可以使得程序在根要的位置随意停止执行,继而一步步执行下去。
F10
逐过程,通常用来处理一个过程,一个过程可以是一次西数调用,或者是一条语句。
F11
逐语句,就是每次都执行一 条语句,但是这个快捷建可以使我们的执行逻辑进入西数內部(这是最长用的)。
CTRL + F5
开始执行不调试
这里先重点将一下逐过程和逐语句的区别
逐过程就是只看过程,如果出现函数,他是不会进去的
逐语句就是可以进入函数内部
其实在调试的时候,窗口界面会跳出很多的东西
这些东西都是可以帮助我们对代码进行调试的,调试,断点,监视
调试运行:即可以侦查每一行代码的执行状态,可以暂停分析,可以回退,可以单步走运行不调试:程序从头到尾执行完,只能看着平时调试程序
断点:在左侧灰色窗口边,点击出现红点,即断点,程序运行到这一行就暂停在这,等待
再点击红点,就取消断点。
停住时:黄色箭头指向的是还没执行的那行,前面的都执行完了查看前面的运行结果:
鼠标放变量上,可以看值,可以右键设置16进制或者 10进制变量拖进监视窗口(断点卡主时->调试->窗口->监视 1,2,3,4,),然后还有自动窗口和局部变量,他们和监视窗口的区别是一下子就可以出现上下的所有变量.但是不稳定,最后就是一下内存,寄存器,汇编的查看了
这个你以后需要就可以查看。
然后开始进入正式的调试过程点F5进入调试环节,
然后这样就可以操作了 ,举个例子
为什么这个函数的值是15而不是12?这是一个阶乘相加的一个程序,我们可以用调试来检查直接先设置断点F9然后F5启动调试
这里我们用自动窗口
开始调试
调试一轮之后发现了问题
ret在第三伦开始时,赋给他的值不是从1开始的而是从2 ,所以找到问题,因该在第2个for循环结束时,讲ret赋一个1,在进去。
然后代码就正确了。
这只是最基础的调试,可以自己动手试一试