前言
在图形化界面中,我们进行调试一般而言比较方便,举例如下:
不过有时候,我们在Linux下没有这样的图形界面,这时可以使用GDB调试器来帮我们完成上面的工作。
GDB基础指令分类与汇总
类别 | 指令 | 含义 | 举例 |
---|---|---|---|
基本使用 | gcc programe.c -o programe_debug -g | 生成debug版代码(包含调试信息) | gcc programe.c -o programe_debug -g |
基本使用 | gdb programe_debug | 进入debug环境 | gdb programe_debug |
基本使用 | q/quit | 退出debug环境 | q ; quit |
查看源码 | l/list | list :显示源码,每次10行 | l programe.c:行号 |
查看源码 | search/forward-search/reverse-search | 搜索源码并显示 | search 正则表达式 |
调试选项 | c/continue | continue :继续,F5 | c ; continue |
调试选项 | n/next | next :逐过程,F10 | n |
调试选项 | s/step | step :单步调试,F11 | s |
调试选项 | finish | finish :单步跳出,Shift+F11 | finish |
调试选项 | r | run :运行/重启,Ctrl+Shift+F5 | r |
调试选项 | kill | kill :停止,Shift+F5 | |
断点 | b/break | break :打断点 | b program.c:行号/函数名 |
断点 | d/delete | delete :删除断点 | d 断点编号 d breakpoints |
断点 | info | 查看断点信息 | info b/breakpoints 断点编号 ; info b/breakpoints |
断点 | enable/disable | 断点使能/失能 | enable/disable b 断点编号 ; enable/disable breakpoints |
监视 | set var | 设置变量的值 | set var i=0 |
监视 | p/print | 打印变量的值 | print i |
监视 | display/undisplay | 跟踪/取消跟踪查看变量 | display i |
其它 | bt | backtrace :回溯显示函数调用(栈回溯) | bt |
其它 | until | 跳转到指定位置,但不能跳过断点 | until 源码行号 |
其它 | ptype | 查看变量的类型 | ptype 可选参数 变量或者类型 |
其它 | jump | 跳转执行(任意跳转可程序可能运行出错或崩溃) | jump 位置 |