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 断点号 | 将断点设置为有效的 |