详细的gdb调试流程

总结下gdb调试流程,当日志用。

流程:

1)带着调试选项编译(加-g),构建调试对象a.out($g++ -Wall -o2 -g ./a.cpp,如果使用到TSD等还需要加编译选项-lpthread)

2.1)启动gdb(开始运行指定程序并调试$gdb ./aout、attach到正在运行的进程并调试$gdb -p `pidof a.out`,gdb -tui分屏显示源代码)

2.2)source ./mygdbinit (载入gdb命令脚本文件mygdbinit,等效$gdb --commonds=./.mygdbinit)

2.3)开始gdb(run:直接运行、start:设置main断点再运行,start 10 20 30:发送3个参数给执行程序的main函数)

3.1)设置断点(一般<函数、行、地址、下行、偏移量、汇编机器指令行等>断点、内存断点、条件断点等:b,watch,awatch,rwatch,注意区别:b fun和b *fun的不同)

3.2)显示所有断点(info b)

3.3)删除断点(delete 断点编号、clear 详细断点、delete:删除所有断点,等)

4.1)显示栈/栈帧(bt、bt N、bt -N、bt full、bt full N、bt full -N等,注:一个进程对应call-stack调用栈,一个函数对应stack-frame栈帧,显示栈帧:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值