在编译时要加上-g选项,生成的可执行文件才能用gdb进行源码级调试:
$: gcc -g 10_1.c -o 10_1.out(扩展名可以不加)然后执行:gdb 10_1.out就可以进行gdb调试了。 1. start命令开始执行程序 2. list 从第一行开始列出源代码 3. quit退出调试 4. step进入函数跟踪。s。 5. backtrace命令(简写为 bt)可以查看函数调用的栈帧。 (gdb) bt #0 add_range (low=1, high=10) at main.c:6#1 0x080483c1 in main () at main.c:14 6.用 info命令(简写为 i)查看函数局部变量的值。 i locals 7.如果想查看 main函数当前局部变量的值也可以做到,先用 frame命令(简写为 f)选择1号栈帧然后再查看局部变量(这个1就是前面的#1) (gdb) f 1 然后再 i locals 就可以了。 8.用 print命令(简写为 p)打印出变量的值。 9.用 finish命令让程序一直运行到从当前函数返回为止。 10. set var sum=0 修改变量的值。 以上为具体内容。以下为表格: 命令描述backtrace(或bt)查看各级函数调用及参数finish连续运行到当前函数返回为止,然后停下来等待命令frame(或f) 帧编号选择栈帧info(或i) locals查看当前栈帧局部变量的值list(或l)列出源代码,接着上次的位置往下列,每次列10行list 行号列出从第几行开始的源代码list 函数名列出某个函数的源代码next(或n)执行下一行语句print(或p)打印表达式的值,通过表达式可以修改变量的值或者调用函数quit(或q)退出gdb调试环境set var修改变量的值start开始执行程序,停在main函数第一行语句前面等待命令step(或s)执行下一行语句,如果有函数调用则进入到函数中