贺利坚Email:sxhelijian@163.com1010101000010010101010101010101010101001010000110011001101010100001001010101010101010101010100101000011001100110101010000100101010101010101010101010010100001100110CodeBlocks调试功能快捷教程制作贺利坚贺利坚Email:sxhelijian@163.comBlog:为什么要用单步调试单步调试是发现运行错误和逻辑错误的“利器”,可用于(1)跟踪程序的执行流程,发现错误的线索——发现该走A路径,却走了B路径(2)跟踪过程中,还可以观察变量的变化,从而发现其中存在的问题——该是1,执行中却分明是2,之前哪儿出了问题?单步执行除了可以帮助我们发现错误,对于初学者,还可以帮助我们理解语言的机制。“工欲善其事,必先利其器”,单步调试就是程序设计者最重要的工具之一这种工具的形态是软件。程序员用软件当工具,正常得不得了。用好这种工具!贺利坚Email:sxhelijian@163.comBlog:寄语初学者对于初学者,掌握所用的集成开发环境的一般用法,是一件非常重要的事情。单步调试更是在实践中掌握的,做中学,学中记得用本文讲Code::Blocks的单步调试,其他开发环境,也有类似功能,通一百通。打开你的Code::Blocks,一边看,一边练……贺利坚Email:sxhelijian@163.comBlog:先认识菜单单步调试功能在Debug菜单中日常应用常用工具栏或快捷键,举步艰难时想起菜单,这里有全部的功能!观察菜单,知道有哪些功能;灰色的部分,会在“条件”具备时变得可用。实践中记住这些快捷键,用快捷键操作,高手的做法。状态栏有各选中功能的解释——看解释,便于学习。贺利坚Email:sxhelijian@163.comBlog:单步调试的工具栏用工具栏中按钮,而不是菜单,更便捷如何“找”出工具栏?(1)保证“勾选”了“Debuger”(2)界面上就会有此工具栏将鼠标“浮”在工具栏按钮上,会看到RuntoCursor、NextLine——菜单也有但,这儿更便捷!贺利坚Email:sxhelijian@163.com1010101000010010101010101010101010101001010000110011001101010100001001010101010101010101010100101000011001100110101010000100101010101010101010101010010100001100110技能1:用RuntoCursor、NextLine调试记得要边看边练贺利坚Email:sxhelijian@163.comBlog:准备(1)设计一个求圆面积的程序(2)程序经built没有语法错误(3)最好让调试工具栏出现贺利坚Email:sxhelijian@163.comBlog:照这样做……(1)光标先置到第7行(2)点RuntoCursor(或键盘F4)(3)第7行前会有小黄三角,表现执行到第7行(4)再点NextLine(或键盘F7)(5)程序执行到第8行,小黄三角为证。(7)DOS窗口的输出也是见证。贺利坚Email:sxhelijian@163.comBlog:已经NextLine到了第11行(1)执行第8行时需要在此输入(2)Watch窗口可以看到变量随程序执行的变化——这是最珍贵的线索,无论找错,还是学习(3)细心观察,你该有的品质。(4)可以继续NextLine……(5)如果目的已经达到,那就StopDebugger。贺利坚Email:sxhelijian@163.comBlog:有人找不到Watch窗口……(2)勾选住“Watches”(1)点DebuggingWindows按钮中的小三角。(3)执行过程中观察变量的变化,要看出“门道”贺利坚Email:sxhelijian@163.comBlog:小试牛刀:实践一下(3)如果你已经看出了这个简单程序中的问题,也尝试一下,用单步调试发现问题。(1)先执行几次程序,给出不同输入,发现总是2。(2)编译时会有一个warning,先不理会。(4)单步调试中,发现无论输入是多少,总会执行到这个分支。(5)这个分支永远没有机会执行!贺利坚Email:sxhelijian@163.comBlog:真相大白(3)的确此时a的值就是2。(1)输入的是4(2)却执行到了这个分支。(4)仔细看,该是a==2贺利坚Email:sxhelijian@163.com1010101000010010101010101010101010101001010000110011001101010100001001010101010101010101010100101000011001100110101010000100101010101010101010101010010100001100110技能2:跟踪自定义函数StepInto和stepout出场贺利坚Email:sxhelijian@163.comBlog:要跟踪这个程序的执行#includeiostreamusingnamespacestd;constdoublepi=3.1415926;floatarea(floatr);intmain(){floatr1,a1;cinr1;a1=area(r1);couta1endl;return0;}floatarea(floatr){floata;a=pi*r*r;returna;}(1)程序中有了自定义函数(2)用前面的办法跟踪时,此行执行NextLine,直接跳到下一行,将函数调用当作一个整体看待(3)错误可能发生在自定义函数中,能不能“尾随”“跟踪”进函数内部来?(4)期待能够到函数里面看一看。贺利坚Email:sxhelijian@163.comBlog: