gdb
启动 GDB
gdb object ## 正常启动,加载可执行
gdb object core ## 对可执行 + core 文件进行调试
gdb object pid ## 对正在执行的进程进行调试
gdb ## 正常启动,启动后需要 file 命令手动加载
gdb -tui ## 启用 gdb 的文本界面(或 ctrl-x ctrl-a 更换 CLI/TUI)帮助信息
help ## 列出命令分类
help running ## 查看某个类别的帮助信息
help run ## 查看命令 run 的帮助
help info ## 列出查看程序运行状态相关的命令
help info line ## 列出具体的一个运行状态命令的帮助
help show ## 列出 GDB 状态相关的命令
help show commands ## 列出 show 命令的帮助断点
break main ## 对函数 main 设置一个断点,可简写为 b main
break 101 ## 对源代码的行号设置断点,可简写为 b 101
break basic.c:101 ## 对源代码和行号设置断点
break basic.c:foo ## 对源代码和函数名设置断点
break *0x00400448 ## 对内存地址 0x00400448 设置断点
info breakpoints ## 列出当前的所有断点信息,可简写为 info break
delete 1 ## 按编号删除一个断点
delete ## 删除所有断点
clear ## 删除在当前行的断点
clear function ## 删除函数断点
clear line ## 删除行号断点
clear basic.c:101 ## 删除文件名和行号的断点
clear basic.c:main ## 删除文件名和函数名的断点
clear *0x00400448 ## 删除内存地址的断点
disable 2 ## 禁用某断点,但是不删除
enable 2 ## 允许某个之前被禁用的断点,让它生效
rbreak {regexpr} ## 匹配正则的函数前断点,如 ex_* 将断点 ex_ 开头的函数
tbreak function|line ## 临时断点
hbreak function|line ## 硬件断点
ignore {id} {count} ## 忽略某断点 N-1 次
condition {id} {expr} ## 条件断点,只有在条件生效时才发生
condition 2 i == 20 ## 2号断点只有在 i == 20 条件为真时才生效
watch {expr} ## 对变量设置监视点
info watchpoints ## 显示所有观察点
catch exec ## 断点在 exec 事件,即子进程的入口地址运行程序
栈帧
代码浏览
浏览数据
目标文件操作
信号控制
线程调试
进程调试
汇编调试
历史信息
其他命令
GDB 前端
References
Last updated