GDB知识点

基本操作

生成包含调试信息的可执行文件

gcc -g test.c -o test

进入gdb调试

gdb test

查看所载入的文件

(gdb) l

设置断点

在程序第六行设置断点(breakpoint)

(gdb) b 6

查看断点

(gdb) info b

运行程序

(gdb) r

查看栈信息

(gdb) bt

查看变量值

variable为变量名称

(gdb) p variable

单步运行

单步运行有两种,”n“(next)和”s"(step),“s“可以调试程序直接进入调用函数,而”n"不行。

(gdb) n

or

(gdb) s

恢复程序运行

(gdb) c

工作环境相关命令

gdb工作环境相关命令

命令格式 含义
set args运行时的参数 指定运行时参数,如 set args 2
show args 查看设置好的运行参数
Path dir 设定程序的运行路径
show paths 查看程序的运行路径
set environment var [=value] 设置环境变量
show environment [var] 查看环境变量
cd dir 进入dir目录
Pwd 显示当前目录
shell command 运行shellcommand命令

设置断点与恢复命令

gdb设置断点与恢复相关命令

命令格式 含义
info b 查看所有断点
break[文件名:]行号或函数名<条件表达式> 设置断点
tbreak[文件名:]行号或函数名<条件表达式> 设置临时断点,到达后自动删除
delete[断点号] 删除指定断点,其断点号为"info b"中的第一栏。若缺省断点号默认删除所有断点。
disable[断点号] 停止指定断点,可以查看,功能与delete类似。
enable[断点号] 激活断点。
condition[断点号]<条件表达式> 修改对应断点的条件
ignore[断点号] 忽略对应断点num
Step 单步恢复程序运行,且进入函数调用
Next 单步恢复程序运行,但不进入函数调用
Finish 运行程序,直到当前函数完成返回
C 继续执行函数,直到函数结束或遇到新的断点

gdb中源码查看相关命令

gdb中源码查看相关命令

命 令 格 式 含义
list <行号> |<函数名> 查看指定位置代码
file [文件名] 加载指定文件
forward-search 正则表达式 源代码的前向搜索
reverse-search 正则表达式 源代码的后向搜索
dir DIR 将路径 DIR 添加到源文件搜索的路径的开头
show directories 显示源文件的当前搜索路径
info line 显示加载到 gdb 内存中的代码

gdb中查看运行数据相关命令

gdb 查看运行数据相关命令

命 令 格 式 含义
print 表达式 变量
x <n/f/u> 查看内存变量内容。其中 n 为整数表示显示内存的长度,f 表示显示的格式,u 表示从当前地址往后请求显示的字节数
display 表达式 设定在单步运行或其他情况中,自动显示的对应表达式的内容
backtrace 查看当前栈的情况,即可以查到哪些被调用的函数尚未返回

gdb 中修改运行参数相关命令


参考:《嵌入式Linux应用程序开发标准教程》作者:华清远见

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章