Linux调试器 gdb

gbd基本概念
GDB (GNU Debugger) 是一个强大的命令行调试工具,用于调试各种编程语言(如C、C++、Java、Python等)编写的程序。使用 gdb可以帮助开发人员更快地定位和修复程序中的缺陷,提高代码质量和开发效率。它是 Linux/Unix 系统上最常用的调试工具之一。

1. 背景

程序的发布方式有两种, debug 模式和 release 模式
Linux gcc/g++ 出来的二进制程序,默认是 release 模式,不可调试
要使用 gdb 调试,必须在源代码生成二进制程序的时候 , 加上 - g 选项

可以看到的是,debug版本的可执行程序test.d明显比release版本test.r的大。

readelf命令

我们可以通过readelf指令来查看可执行文件中有没有调试信息。

2. 开始使用

语法:gdb + debug版本文件

  退出: ctrl + d q
  调试命令:
list l 行号:显示 binFile 源代码,接着上次的位置往下列,每次列 10 行。
list l 函数名:列出某个函数的源代码。
break/b 行号:在某一行设置断点
break/b函数名:在某个函数开头设置断点
info break /i b:查看断点信息。
delete breakpoints/d :删除所有断点
delete breakpoints n/d  n:删除序号为 n 的断点
disable n:禁用序号为 n 的断点
enable n:启用序号为 n 的断点
r/run:从开始连续而非单步执行程序
c/continue:从当前位置开始连续而非单步执行程序,c用于断点间的跳转
n/next:单条执行,n不会进入函数内部,把函数调用看成一个语句执行
s/step:进入函数调用
finish:执行到当前函数返回,然后停下来等待命令
until 行号:跳至n
p/print 变量名:打印变量或者表达式的值,通过表达式可以修改变量的值或者调用函数
display  变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay n :取消对先前设置的编号为n的变量的跟踪
set var :修改变量的值
breaktrace( bt) :查看各级函数调用及参数
info i) locals :查看当前栈帧局部变量的值
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我要满血复活

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

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

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

打赏作者

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

抵扣说明:

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

余额充值