GDB是GNU开源组织发布的一个强大的UNIX及类UNIX环境下的用户态程序调试工具,是C/C++程序调试的主流工具。
在CentOS操作系统下,通过yum安装GDB。
yum install gdb //CentOS
gdb program
program为待调试的可执行文件。
gdb program core
core为程序非法执行后core dump后产生的文件。
gdb program $PID
PID为需要调试的程序PID号。
(gdb) command *args
上述三种方式进入GDB调试页面,会出现(gdb),command是需要执行的调试命令(部分命令有简写),*args是部分调试命令需要的参数。
常用参数如下:
命令 |
用途 |
---|---|
r |
运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。 |
c |
继续执行,到下一个断点处。 |
n |
单步跟踪程序,当遇到函数调用时,不进入此函数体,直接调用函数。 |
s |
单步调试如果有函数调用,则进入函数。 |
until |
运行程序直到退出循环体。 |
finish |
运行程序,直到当前函数完成返回。 |
call |
用程序中可见的函数,并传递“参数”。 |
l |
查看源码;list n查看n行前后10行,list func查看函数源码。 |
b n |
在n行处加断点。 |
b func |
在函数func()的入口处设置断点。 |
clear n |
清除第n行的断点。 |