此教程是针对codeblocks的,请大家先安装 codeblock8.02 别装第十版,不稳定。下8.02版就行。
下载地址:
安装步骤我就不说了。自己网上找,有一堆。
假如我编写了一段程序,编译也通过了,可就是没能得出最后结果。又一下看不出是哪里出错了。那么用调试就可以发现这些问题了!
例:
我想编一个程序,实现两个数的比较,如果谁大,输出谁。如果相等,输出-1。

打开编译器
写程序吧!

这是我写的程序,放心,肯定有错误,要不然咋演示?
编译,通过,运行,输入 2 3
出问题了。

现在我们来模拟一下程序执行过程,看看错误都出哪里了
1, 关掉刚才的黑框,在你要下断点的地方按F5 ,断点就是你想让程序执行到哪暂停的意思。
比如,我现在在main()建立了一个断点。

然后把wathes选上。
2, 然后按
上的
找不到?

把debugger选上就有了。
3,
看到那个黄色的箭头了么?他的意思是程序执行到哪了,刚才我们再main下了断点,所以在那停住了。
按
,(Next Line)他会走一步,

当走这的时候再按一下 

会看到消失了。其实不是消失,你在仔细看看这条语句,是输入。所以打开黑框,输入 2 3 回车

出来个框框
出错了吧,sigsegv 编译出错。仔细看看,发现a,b前面没有加& 找到错误了。点否,按
,然后再改代码。
改好后重新调试

看,今次没有提示,直接指向第七行。
再按一下
,

看看现实出结果了,可是不是我们要的结果,说明函数cmp里面有问题,继续按
等到重新输入第二组用例后

(输出后面没加\n )
执行到这以后

看,它跳到了函数cmp里面。
在watch表里面加两个监测值 n1 ,n2

里面点右键 add watch 输入两次,分别是n1,n2
不对啊……咋进入return -1 了?再看看现在n1 的值变成5了! (改变的值,它会用红色现实,这样显眼)
说明n1=n2 有问题。 很明显了吧 然后点结束
。改代码。重新测试一下。

(在windows中 ctrl+z 就是等于 EOF)
OK!

这篇教程介绍了如何在CodeBlocks 8.02中进行调试,以找出程序错误。作者通过一个比较两个数的示例程序,演示了设置断点、观察变量变化和跟踪代码执行的过程,帮助读者理解如何在遇到程序无法得出正确结果时,通过调试找到问题所在。
492

被折叠的 条评论
为什么被折叠?



