gdb调试指南

本文主要记录如何在Linux环境下用gdb对C/C++程序进行调试。

什么时候用调试器(debugger)?

一般来讲,最普遍的方法就是通过输出信息来调试。 但是有些时候你难以定位出错的位置,如出现了segment falut,那么调试器往往是利器。

gdb是GNU软件系统中标准的调试器,是用来调试C/C++的绝佳利器。

gdb使用指南

在编译指令中添加-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

参考资料