gdb调试常用命令

这篇完全是给记性不好的我,属于个人备忘录。
gdb可是调试c/c++的利器,我经常使用的命令如下:

使用gdb
	$ gdb 程序名称
	$ gdb  --args 程序名称 程序参数   //带参数启动
	$ gdb -x /home/local/gdbinit --args 程序名称 程序参数          //带自定义gdbinit脚本启动
参数传递
	set args 参数

注意不能是set args “参数” 。如果多个参数传递,添加了“ ”。会不被程序识别。或者启动直接添加参数
gdb --args 程序名称 程序参数

调试子进程
	set  follow-fork-mode  child
断点设置
	b test.cpp:12      //断在test文件的第12行
	b *address       //在某个地址处停下
	b filename:line_num if (var == ??)  //带条件的断点
	i b  //查看断点
	d 1 // 删除断点,1为断点号
运行
	r(run)
单行调试
	单步 s (step 碰到函数会进入)
	单行 n (next 碰到函数不会进行, 而是整条执行)
	单步 si (单步执行汇编指令)
查看汇编指令
	disassemble
	x/10i $pc    //从当前pc位置查看接下来的10条指令
查看寄存器信息
	info registers
	i r t0 at //仅仅查看t0和at两个寄存器中的值
查看变量值
	p 变量名称
观察某个变量/内存地址的状态(也可以是表达式)
watchpoint只能在程序启动后设置,先在main那下个断点,让程序启动后暂停在main函数处:
(gdb) watch 变量名称 
(gdb)c
调试多进程
 (gdb) set follow-fork-mode child
 (gdb) set detach-on-fork off
忽略某个信号
(gdb)handle SIG34 nostop noprint   //忽略信号SIG34
  也可以把此命令写入自己定义的gdbinit文件中,然后启动gdb时使用-x加载此gdbinit文件:
  gdb -x /home/loongson/gdbinit --args 程序名称 参数列表
如何让程序能够使用gdb

使用gdb之前必须确保程序在gcc命令编译时添加 -g -rdynamic 选项。
当前很多应用编译是使用写好的Makefile。我们只要执行make命令就可以生成最终bin程序。那这个“-g -rdynamic”参数怎么添加进去呢?快速的方式是执行make时添加–trace参数。即make --trace 这样会把make过程的命令详细打印出来。然后找到gcc命令行,添加上“-g -rdynamic”参数后单独执行这条gcc语句,也可以生成bin程序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

海棠花败

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

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

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

打赏作者

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

抵扣说明:

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

余额充值