GDB调试分为两种模式,一种是debug版本,一种是release版本。一般GDB主要调试的是C/C++的程序。
(1)debug版本:debug版本为可调式版本,生成的可执行文件中包含调试需要的信息。
(2)release版本:release版本为发行版本,是提供给用户使用的版本。
基础调试命令(单进程/单线程)
调试C/C++的程序,首先在编译时, 我们必须要把调试信息加到可执行文件
中。 使用编译器( cc/gcc/g++) 的 -g 参数可以做到这一点。
eg:> cc -g filename.c -o filename
> g++ -g filename.cpp -o filename
| 命令 | 解释说明 |
| gdb filename | 启动gdb,调试filename文件 |
| l | 显示main函数所在文件的源代码 |
| b/break | 设置断点 |
| info break | 显示断点信息 |
| r(run) | 运行程序 |
| n(next) | 单步执行 |
| c(continue) | 继续执行程序,直到遇到断点 |
| p(printf) i | 打印 i的值(i 可以是任意变量) |
| bt | 显示函数调用栈 |
| s | 进入将要被调用的函数中执行 |
| finish | 退出函数 |
| q | 退出调试 |
| delete 断点号 | 删除断点 |
| disable 断点号 | 将断点设置为无效的 |
| enable 断点号 | 将断点设置为有效的 |