原文链接
- http://www.unknownroad.com/rtfm/gdbtut/gdbuse.html
1. 如何使用 gdb?
想要使用 gdb 工具进行调试,编译代码时必须开启 debugger 模式。为了开启 debugger 模式编译的时候要带上参数-g
1.1 编译时开启 debug 模式
以编译 c 语言为例
NOTE: If you have a larger program with several files, each must be compiled with the -g flag, and it must also be set when you link.prompt > gcc -g program.c -o programname
当程序很大时,必须每个文件都用-g
编译。1.2 在 debug 模式下运行程序
这个命令就会进入到 gdb 的shell。prompt> gdb programname(编译出来的可以执行文件名)
run
命令可以开始执行程序,run 命令也可以接受参数。
(gdb) run arg1 "arg2" ...
1.3 如何重启程序
使用 kill 命令杀掉程序后,就可以再使用 run 重启程序。
(gdb) kill
Kill the program being debugged? (y or n) y
(gdb) run ..
1.4 如何退出 gdb 的debug模式?
使用 quit 命令。
(gdb) quit
The program is running. Exit anyway? (y or n) y
prompt >
1.5 查看 gdb 的帮助命令
(gdb) help
显示出来的都是一级命令,go 和这个比较像:
- aliaes, 其他命令的别名
- breakpoints,设置断点
- data,检查数据
- files,指定并检查文件
- internals(内部的),内部命令
- obscure (无名的), 隐式命令
- running,运行程序
- stack, 栈
- status,状态查询
- support,支持的设备
- tracepoints, 追踪程序执行不停止程序
- user-define,自定义命令。
使用 help 一级命令
获取对应的命令帮助详情;
使用 help all
获取所有命令。
使用 apropos [word]
来对 [word]
相关的命令进行模糊搜索。