代码调试是程序员必须掌握的一门技巧,掌握代码调试对以后学习,错误排除,源码研究等都有很大的帮助。
前言
再牛的程序员也没法一口气把代码全部写正确,通常做法就是写一小段然后验证代码正确性,再继续写下一段,这样能保证代码不会错得太离谱。怎么衡量一小段代码呢?在你觉得这段代码没有十足把握的情况下就应该停下来验证一下。
断点调试常用术语
“单步进入”step into:就是单步执行,遇到子函数就进入并且继续单步执行;
“单步执行并跳过”step over:是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。
“单步执行并返回”step return:就是单步执行到子函数内时,用step return就可以执行完子函数余下部分,并返回到上一层函
数。
“继续执行”:即跳过此断点继续运行。
简单的例子
先来看一个简单的代码,如下,代码很简单,结果显而易见,咱们来调试一下这个代码
1,进入调试
点击菜单栏->调试->逐语句 或者使用快捷键“F11”
进入之后,在main函数的第一行,会出现一个黄色小箭头,代表着此时代码执行到的位置。
接下来继续按"F11",即可逐步执行每行代码了,执行的过程中,我们需要查看变量的值的变化,菜单栏->调试->窗口->局部变量,先点击这个打开局部变量窗口
此时我们会在下面的窗口中看到变量,目前在内存里面的数据及类型
当我们继续执行时,会发现局部变量窗口中的变量的值发生了改变,很直观即可看到结果
当执行到函数调用语句时,会进入函数内部执行,而且局部变量里面会同步显示函数里面的变量信息
函数执行结束,会返回到调用处,而且局部变量窗口会显示返回值信息
这就是逐步调试一个简单的流程,你学会了吗?
逐步调试配合断点
再来看一个简单的代码,如下
如果按"F11"使用单步调试,那么我们需要在循环处,按10次才能执行到printf语句。我们可以结合断点,快速跳过循环。
1,添加断点
把光标移动到需要加断点的行,然后按"F9",或者用鼠标在需要加断点的行前面的灰色区域点一下。
2,跳过循环
首先逐步调试到循环处,然后按"继续"即可直接执行到最近的断点所在的行
点“继续”直接跳转到断点处
3,删除断点
重复添加断点的步骤即可
好了,简单调试就介绍到这里,大家可以先练习一下,后面介绍复杂的示例。