
此教程是针对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!