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

本文全面介绍了GDB调试器的使用,包括设置参数、修改变量、加载程序、线程调试、断点管理、内存查看等功能,并详细讲解了各种调试指令,如next、step、list、backtrace等,帮助开发者深入理解程序执行过程,提升调试效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录

GDB再学习(1):前言
GDB再学习(2):编译
GDB再学习(3):GDB的启动和运行
GDB再学习(4):程序准备
GDB再学习(5):常用指令介绍
GDB再学习(5.1):常用指令介绍_print/display_查看变量或寄存器中的值
GDB再学习(5.2):常用指令介绍_examine_查看内存区域的数值
GDB再学习(5.3):常用指令介绍_backtrace_查看函数栈
GDB再学习(5.4):常用指令介绍_ptype/whatis_查看程序符号表
GDB再学习(6):断点调试之软件断点
GDB再学习(7):断点调试之硬断点
GDB再学习(8):断点调试之数据断点
GDB再学习(9):断点调试之事件断点
GDB再学习(10):线程调试相关
GDB再学习(11):如何生成Core文件
GDB再学习(12):gdb server的使用



下面汇集一些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线程锁定模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值