GDB再学习(5):常用指令介绍


下面汇集一些gdb调试时候,常用的指令,部分指令后再后续的文章中进行说明。

1 基本指令

指令 说明
set args xxx 传递参数xxx
set var 修改变量的值
file xxx 载入目标程序xxx
attach pid 通过PID链接程序
start/s 启动运行 程序会停在main()函数的开始处
continue/c 继续运行
run/r 运行程序
quit/q 退出gdb

2 调试相关

指令 说明
next 进行单步跟踪,后面带数字,表示命令运行的次数
step 跟踪进入函数体内,后面带数字,代表需要运行的次数
list 显示跟踪点附件的代码
until 不带参数,和next效果一样,带参数数字,代表直接跳到我们希望的停止点
jump 强制跳转执行
finish 运行完直接返回
return 在某函数内直接返回,带参数,表示要返回的数值
info registers/reg 查看寄存器的值
info all-registers/all-reg 查看全部寄存器的值
info locals 查看所有局部变量值
info args 查看函数参数的值
info frame 查看当前帧的信息
info stack 查看栈信息
info variables 查看程序中的变量符号
info functions 查看程序中的函数符号
info address symbol 查看symbol的地址
info symbal addr 查看存储在地址addr中的符号名称
where 查看栈信息
bt 查看程序的调用栈
bt n 查看最里n帧栈的信息
bt -n 查看最外n帧栈的信息
bt full 查看栈和局部变量的信息
frame n 切换栈帧到编号为n中去
print 查看变量的值或者地址
display 查看变量的值或者地址
whatis xxx 查看程序符号表
ptype xxx 查看程序符号表

3 断点相关

指令 说明
break 设置软件断点
tbreak 设置一次有效软件断点
rbreak 后跟参数,和参数匹配的所有函数上设置断点
info breakpoints 查看断点
delete 删除断点
enable 使能断点
disable 使断点无效
hbreak 设置硬断点
thbreak 设置一次有效硬断点
watch 设置数据断点
catch 设置事件断点

4 线程相关

指令 说明
thread thread-id 切换thread-id为当前线程
info threads [id] 查询指定id线程或全部线程信息
thread name [name] 为当前线程设置一个名称
thread find [regexp] 查找与regexp匹配的线程信息
break location thread thread-id [ if cond ] 在location指定的位置处建立断点,断点的作用范围为指定ID的线程内
thread apply [thread-id-list / all] args 将args命令(next/continue/silent/quiet等)作用于指定的线程或者全部线程
set scheduler-locking mode 线程锁定模式

猜你喜欢

转载自blog.csdn.net/u011003120/article/details/109814781
今日推荐