一、准备工作
1.检查
第一次调试,为避免出现以下错误,需要检查code blocks的gdb.exe安装路径是否填写。
方法如下:
菜单栏Settings-Debugger-GDB/CDB debugger-Executable path: 如果这一项为红色空格,那么就需要找到路径填写出来。一般在code blocks的安装路径下。我的是:D:\codeblock\CodeBlocks\MinGW\gdb32\bin\gdb32.exe。
2.工程已建立好
以“十进制转二进制”C代码为例
//十进制转二进制并显示
#include <stdio.h>
int main(void) {
int i;
for(i=0;i<10;i++)
{
tran(i);
}
return 0;
}
void tran( int n ){
int result=0,a=1,k,temp;
temp = n;
while(temp){
a = temp%2;
result = a * k + result;
a = a*10;
temp = temp/2;
}
printf("%d\n", result);
}
二、调试
1.设置调试断点。
如果不设置断点,点击debug,程序将顺序执行一遍后自动退出。这样就达不到调试的目的:检查代码,确定代码错误的原因和位置。
当工程很大的时候,调试需要分步进行,这更体现了调试的重要性。至少要有一个起始断点,或一个起始断点和一个终止断点。当只有一个起始断点时,调试从起始处开始,直到程序结束。
如图,待调试程序的断点设置始于第5行,止于第9行。
方法:在如上图中红点处,点击鼠标左键,就会看到如图的红点。再次点击即取消断点,红点消失。其他行也一样。
2.debug
工具栏中找到debug/continue的红色三角,点击即进入调试。或者菜单栏的debug选项中也能找到。
工具栏中的几个按钮解释:
Run to cursor 运行到光标
next line 下一步(下一行)
step into 步入(点击可进入子函数)
step out 步出(点击可从正在调试的子函数中跳出,与step into相反)
next instruction 下一条指令(按汇编的指令一条一条走)
step into instruction 进入汇编指令的下一级指令
叉号 终止调试
3.开始调试后,最好打开“Watches”窗口对变量进行实时观察。菜单栏-debug-debugging windows-Watches。