GDB调试相关

GDB调试相关
配置
gdb -args ./sonia a b c 或 set args a b c 或者 run a b c 设置启动参数
set height 0 或 set pagination off 的命令,当输出多信息时,不会暂停
set print elements number-of-elements 设置打印大数组最大限制数,设置为0表示不限制全
打印
set print array-indexes on 开启数组下标打印
set print pretty on 设置结构体显示格式,以层级形式显示打印
set scheduler-locking on 调试一个线程时,让其它线程暂停执行
set disassembly-flavor intel 将汇编指令格式显示形式修改为intel或att格式,只能用在
Intel x86处理器
handle signal stop/nostop 设置当信号发生时,是否暂停程序的执行
断点
b test.c:5 设置断点在test.c的第5行, tb 可设置临时断点
b *address 给程序的地址打断点
b func 或 b *func 打函数断点,后者会打在汇编指令层次的函数开头
b test.c:10 if i==101 当i的值为101时,触发test.c的第10行断点
ignore bnum count 忽略编号为bnum的断点count次
info b 或 i b 查看断点
bt full n 从内到外显示n个函数的栈顶及其局部变量,n为0是,指全部打印
观察点
watch a 当变量a发生变化时,程序暂停
watch *(int*)address 设置观察点观察该地址的值变化
wa a thread 65541 只有线程号为65541的线程修改变量a时,程序暂停
awatch 设置写操作观察点; rw 设置读操作观察点
catch func 设置func调用暂停一次
反汇编
disassemble func 显示函数的反汇编信息
disas /m func 将函数的反汇编信息与源代码映射起来
i line linenum 获取行地址, disassemble StartAddress EndAddress 仅反汇编此行语句
打印
info locals 打印当前函数的局部变量
i proc mappings 打印内存映射信息
i threads 打印线程信息
info functions function 可以列出相关函数名称
info frame 显示函数堆栈帧信息
函数参数地址 Arglist at 0x7fffffffe580, args: a=1, b=2
函数局部变量 Locals at 0x7fffffffe580, Previous frame's sp is 0x7fffffffe590
info registers 显示寄存器值, p $eax 打印寄存器值
up n 或 down n 向上或向下切换函数数据帧,n不输入时,默认为1层
frame n 选择某个函数堆栈帧,n表示层数
p array[60]@10 打印array数组的特定元素,从第60个元素,连续打印10个
p *array@num 从开头打印,打印num个元素
p 'main.c'::var 打印main.c中的静态变量var
p func::var 打印func函数中的变量var
whatis var 或者 ptype he 查看变量的变量类型
x/s string 打印ACSII字符串
x/nfu addr 打印内存的值,以f格式打印从addr开始的n个长度为u的内存值
n:输出单元的个数。
f :是输出格式。比如: x是以16进制形式输出,o是以8进制形式输出,t是以2进制形式输出
u:标明一个单元的长度。
b是一个byte,h是两个byte(halfword),w是四个byte(word),g是八个
byte(giant word)
info sharedlibrary 正则表达式 显示程序加载的共享链接库信息,带 “*” 表示库缺少调试信息
list func 或者 l linenum 显示函数或行号的源代码
generate-core-file 或 gcore 保存core dump文件,供以后分析复现使用
shell ls 或 !ls 使用shell命令
修改
set func::pStr = "XXX" 修改字符串的内容
set var variable = value 修改变量的值, set var $eax = value 修改变量的值
缩写
b -> break
c -> continue
d -> delete
f -> frame
i -> info
l -> list
n -> next
p -> print
r -> run
s -> step
bt -> backtrace
ig -> ignore
wa -> watch
disas -> disassemble

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值