03_GDB调试

前言

我们在使用gdb进行调试的时候,前提是我们对于源码已经比较熟悉了。它跟我们玩破解使用OD调试软件还是有些不一样的。好了,开始我们GDB的学习吧。

基本命令

  • 使用gdb:想要使用gdb进行调试,必须编译的时候要加-g的参数。

  • 启动gdb:gdb app(对应可执行程序名)

  • r(un)启动:代表是我们的程序运行起来

  • start 启动:使之停留在main函数,分步调试

  • n(ext):下一条指令,代表单步步过

  • s(tep):下一条指令,代表单步步入

  • q(uti) :退出gdb

  • 设置启动参数 set args 1 2

设置断点

  • b行号:主函数所在文件的行

  • b 函数名:对此函数设置断点

  • b 文件名:行号:对所在文件对应行号设置断点

  • 设置条件断点: b line if i == 1(i代表C语言中的变量)

  • l(ist):查看代码,默认显示10行

  • l 文件名:行号:查看行号所在周围的代码

  • del:删除断点

  • info breakpoints:得到断点编号,此时就可以使用del进行删除断点

  • c(ontinue):跳到下一断点

  • p(rint):打印变量的值

  • ptype:打印变量的值

设置变量的值

  • set argc = 5

  • set argv[1] = “Little”

  • set argv[2] = “Fish”

  • display:显示变量的值,用于追踪,查看变量具体什么时候变化

  • undisplay:删除显示变量,查看编号,info display

我们还可以使用gdb跟踪core文件,但是要使用ulimit -c来设置core文件的大小,通常我们可以使用ulimit -c unlimited.当然我们还可以设置core名称,直接vim /proc/sys/kernel/core_pattern即可。通常这个文件我设置为core-%e-%t。(%e代表添加命令名,%t代表添加core文件生成时的unix时间)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

fish小余儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值