gdb是UNIX及UNIX-like下的调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。(来自百度百科)
下面通过一个简单的例子来阐述一下这个强大的调试工具吧!
//a.c
#include "stdio.h"
int func()
{
return 1;
}
main(){
int i, f=1;
for(i=100000;i>0;i--)
{
f = f/i;
}
printf("%d %d\n", i, f);
func();
}
>>> gcc -g -o test a.c
>>> ./test
0 0
好啦,很简单的一个程序,调用了一个函数,打印了一些循环的结果,即使这么简单的程序里也展示了一些注意事项,如果希望使用gdb调试程序必须加入编译参数-g。
使用下面的命令进入gdb的交互模式吧。
>>> gdb ./test
(gdb)
如果你的程序需要输入参数,可以用以下命令载入哦
>>> gdb --args ./test 1 2 3
(gdb)
list(简写:l)
其作用就是列出程序的源代码,默认每次显示10行。
list 行号:将显示当前文件以“行号”为中心的前后10行代码,如:list 12
list 函数名:将显示“函数名”所在函数的源代码,如:list main
list :不带参数,将接着上一次 list 命令的,输出下边的内容。
(gdb) l
1 #include "stdio.h"
2 int func()
3 {
4 return 1;
5 }