参考:GDB Command Reference - Index pagehttps://visualgdb.com/gdbreference/commands/
gdb常用命令:
1、打开gdb
启动gdb的方法有以下几种:
1) gdb <program>
program也就是执行文件,一般在当前目录下。
2) gdb <program> core
用gdb同时调试一个运行程序和core文件,core是程序非法执行后,core dump后产生的文件。
3) gdb <program> <PID>
如果程序是一个服务程序,那么可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试它。program应该在PATH环境变量中搜索得到。
4)gdb
也可以无参数直接运行gdb,后面再attach进程或打开文件等
2、常用命令:
file [filename] | 装入想要调试的可执行文件 |
kill [filename] | 终止正在调试的程序 |
break [file:]function | 在(file文件的)function函数中设置一个断点 |
clear | 删除一个断点,这个命令需要指定代码行或者函数名作为参数 |
run [arglist] | 运行您的程序 (如果指定了arglist,则将arglist作为参数运行程序) |
bt Backtrace | 显示程序堆栈信息 |
打印表达式的值 | |
continue | 继续运行您的程序 (在停止之后,比如在一个断点之后) |
list | 列出产生执行文件的源代码的一部分 |
next | 单步执行 (在停止之后); 跳过函数调用 |
nexti | 执行下一行的源代码中的一条汇编指令 |
set | 设置变量的值。例如:set nval=54 将把54保存到nval变量中 |
step | 单步执行 (在停止之后); 进入函数调用 |
stepi | 继续执行程序下一行源代码中的汇编指令。如果是函数调用,这个命令将进入函数的内部,单步执行函数中的汇编代码 |
watch | 使你能监视一个变量的值而不管它何时被改变 |
rwatch | 指定一个变量,如果这个变量被读,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。参考rwatch和watch命令 |
awatch | 指定一个变量,如果这个变量被读或者被写,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。参考rwatch和watch命令 |
disable | 禁止断点功能,这个命令需要禁止的断点在断点列表索引值作为参数 |
display | 在断点的停止的地方,显示指定的表达式的值。(显示变量) |
undisplay | 删除一个display设置的变量显示。这个命令需要将display list中的索引做参数 |
enable | 允许断点功能,这个命令需要允许的断点在断点列表索引值作为参数 |
finish | 继续执行,直到当前函数返回 |
ignore | 忽略某个断点制定的次数。例:ignore 4 23 忽略断点4的23次运行,在第24次的时候中断 |
info [name] | 查看name信息 |
load | 动态载入一个可执行文件到调试器 |
xbreak | 在当前函数的退出的点上设置一个断点 |
whatis | 显示变量的值和类型 |
ptype | 显示变量的类型 |
return | 强制从当前函数返回 |
txbreak | 在当前函数的退出的点上设置一个临时的断点(只可使用一次) |
make | 使你能不退出 gdb 就可以重新产生可执行文件 |
shell | 使你能不离开 gdb 就执行 UNIX shell 命令 |
quit | 退出gdb. |