GDB基本使用

断点:
BreakPointer:break   lineNum;
info Break【n】:查看断点信息;n表示断点号。
break func:在某个函数的入口处打断点;
bread +- offset:在当前行号的前面或后面的offset行处停住;
设置监视:
watch var:var为某一变量;
rwatch var:当var被读时,停住程序。
awatch var:当var被读或被写时,停住程序。
info watchpoints:列出当前所有的监视点。
只有如上的两种停止点支持if。
condition bnum expression :修改断点号为bnum的停止条件为expression ;
设置捕捉点:
catch event:捕获异常;
删除停止点:
clear:清除所有已定义的停止点。
clear function:清除在函数上的所有停止点。
clear lineNum:清除指定行号上的停止点。
delete [breakpoints] [range...]:删除指定的断点,不指定参数,删除所有的断点;breakpoints:断点号,range:断点号范围。
disable:用法同上,但是gdb不会删除,在此想用时,可用enable恢复。
运行:
List:从第一行开始列出源码,简写l;
Next:单步执行语句,单步步过,简写n;
Step:单步步入,简写s;
si或ni:运行程序直到退出循环体;
Run:运行程序,简写r;
Continue:继续运行程序,简写c;
Print:查看某个变量的值,简写p;
bt、backtrace:查看函数堆栈;
源代码搜索:search regexp :向前面搜索;
reverse-search:全部搜索;  
regexp:是一个正则表达式,也是一个 字符串的匹配模式。

disassemble func:查看函数的反汇编。
info line:可以跟行号,函数名,这个命令会显示处指定的源码在运行是的内存地址。
p *array@len:显示这个动态数组的取值。
p/x var:16进制显示。
自动显示:
可以设置一些自动显示的变量,当程序停住是这些变量会自动显示。
display expr
display/fmt expr/addr
expr是一个表达式,fmt表示显示的格式,addr表示内存地址。
delete display [num]:删除某个自动显示。
查看内存:
examine简写为x,来查看内存中的值。
x/(n/f/u) addr:n/f/u为三个可选参数。
n是一个正整数,表示内存的长度,也就是说当前地址向后显示几个地址的内容。
f表示显示的格式。
u表示从当前地址向后请求的字节数,如果不指定的话,gdb默认的是4字节。
三个参数可以一起使用。

finish:退出函数。

查看寄存器的值:
info registers regname :查看指定寄存器的值。
info all-registers 查看所有寄存器的值。
quit:退出GDB;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值