本文主要记录如何在Linux环境下用gdb对C/C++程序进行调试。
一般来讲,最普遍的方法就是通过输出信息来调试。
但是有些时候你难以定位出错的位置,如出现了segment falut,那么调试器往往是利器。
gdb是GNU软件系统中标准的调试器,是用来调试C/C++的绝佳利器。
在编译指令中添加-g,如
gcc -g test.c -o test
用gdb <program>进行调试,正常读入应该能看到下面信息
Reading symbols from ./test...done.
break <linenum>或break <function>或b设置断点delete可以删除某一断点clear可以删除所有断点通过run/r运行程序,后面可以添加程序命令行参数,如
(gdb) run arg1 arg2
或者直接通过set args指令传参数
(gdb) set args arg1 arg2 ...
list:查看源代码continue/c:执行到断点step/s:单步调试next/n:执行到下一行指令call <function> <args>:调用程序中可见的函数,并传递参数backtrace:获得函数调用信息info register <name>或info registers:获取寄存器信息quit/q:退出gdb