gdb调试关键点记录

1.使用gcc时,需要使用gcc -g选项

2.如果想要把生成的可执行文件的调试信息去掉,可以使用strip命令.

3.调试程序时,最好把编译器的优化给关掉

gdb调试程序的三种方式:

1.gdb filename

2.gdb attach pid # 分离可以用detach

3.gdb filename corename  

gdb常用的命令:

命令(简写)含义
help command救命啊,命令
list(l)列出附近的代码,l -表示前面的.
break(b)打断点

b funcname

b LineNo

b filename:LineNo

run(r)运行
continue(c)运行到下一个断点处
print(p)

打印, 可以查看错误p strerror(errorno)

也可以用来修改变量,比如p a = 3.

也可以计算表达式, p 1+2

  
ptype打印类型,也可以打印结构体内容
info thread

打印线程的信息

切换用thread + 线程序号

info args打印参数信息
backtrace(bt)调用堆栈,可以使用 f 堆栈号 来切换
frame(f)切换到某个堆栈
  
info break(info b)查看断点信息
enable  

+断点编号(可以多个):表示对某个起作用; 

不加表示对所有起作用

disable
delete
  
next(n)单步步过
step(s)单步步入
utilutil LineNo 执行到某行
jump(j)j LineNo或者函数地址 跳转到某处
finish执行完当前层函数,返回到上一层
return当前层函数后面的直接不执行,返回到上一层.可以带返回值,返回值会赋给函数调用方.
  
disassemble 

反汇编, set disassembly-flavor intel 可以设置为intel风格,就是VS下的那种风格

tb临时断点,只第一次起作用
set args设置参数
watch

watch监视变量,当变量发生变化时就会自动中断,很神奇是不是~

 删除watch的方式:  先info watch,然后删除对应的编号.

display

显示你添加进去的变量,每一次中断的位置都会显示

  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodingLife99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值