【1000个GDB技巧之】GDB如何配置启动自动执行脚本以及.gdbinit的3种工程用法?(~/.gdbinit、source、define、end、set)

要点

  • .gdbinit 文件是一个全局配置文件,用于自定义 GDB(GNU Debugger)的行为。启动 GDB 时,在当前工作目录和用户的主目录中查找 .gdbinit 文件,并执行其中的命令。
  • 可配置点:默认选项、定义宏、配置环境变量、加载附加
  • 工程上可以将多个gdb的组合需求用define 定义为命令,这样gdb中可以直接调用

比如一些配置:
set print repeat-off
set print pretty on
break my_function
watch my_variable
set environment myvalue value

以及一些常用的需要加载的

实战举例

~/.gdbinit

cat ~/.gdbinit 

可以添加通用区,以及source各种依赖的gdb配置,这样不同cfg就能放在不同文件维护,提高迭代效率
在这里插入图片描述

~/.gdbvmlinux

这里自定义了一个gdbvmlinux用于调试vmlinux的,只是举例一个用法用来打印一个全局变量
在这里插入图片描述
其他用途

  • 还可以添加一些source的python仓库,能够提供一些高阶用法的库
  • 还可以添加一些example仓库,未来使用新开发会比较方便
  • 还可以结合linux内核态ko,能够动态抓取内核中的一些数据的地址,标准化提供出来提高观测的灵活性

运行后效果

在这里插入图片描述

3种工程用法:

  • cfg:配置
  • source:添加子域命令
  • define:通过define定义命令方便实操使用

综述

  • 结合.gdbinit能够进行启动自动加载,把一些每次需要调试添加的命令可以放入其中,但最好的方式是放入一个source中,提高代码的可维护性
  • .gdbinit可以不断地迭代,能够作为一个方便的命令集合,如果做一些合理的架构设计,能够提供通用的调试方式
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在你提供的引用中,有一个问题是关于在Eclipse中遇到“eclips .gdbinit: No such file or directory”的错误。这个错误通常是由于找不到.gdbinit文件导致的。在你的引用中,你尝试在当前工程根目录下创建一个.gdbinit文件,但是没有起作用。根据你提供的引用内容,有一方法可以解决这个问题。 首先,你需要确认你的.gdbinit文件是否位于正确的位置,并且文件名是否正确。通常情况下,.gdbinit文件应该位于当前用户的主目录下。你可以使用`ls -a`命令来查看是否存在.gdbinit文件。如果不存在,你可以使用`touch .gdbinit`命令在主目录下创建一个空的.gdbinit文件。 接下来,你可以尝试在.gdbinit文件中添加设置架构的语句。根据你提供的引用内容,这个语句可能类似于`set architecture [architecture_name]`。请确保你在语句中替换[architecture_name]为你想要设置的架构名称。 如果你已经按照上述步骤进行了操作,但是仍然遇到“eclips .gdbinit: No such file or directory”的错误。你可以考虑尝试以下方法: 1. 确保你的Eclipse和GDB的版本兼容。根据你提供的引用内容,你使用的是Eclipse Kepler版本和GDB 7.7版本。确保这两个版本是兼容的,可以避免可能出现的问题。 2. 检查你的Eclipse的配置。根据你提供的引用内容,你已经安装了CDT插件。确保你已经正确配置了CDT插件,并且将GDB debugger设置为你编译的GDB的路径。 3. 检查你的系统环境变量。确保你已经将GDB的路径添加到系统的PATH变量中。这样可以确保Eclipse能够正确找到GDB的位置。 总结一下,如果你在Eclipse中遇到“eclips .gdbinit: No such file or directory”的错误,你可以尝试以下方法: 1. 确认.gdbinit文件是否位于正确位置,并且文件名正确。 2. 在.gdbinit文件中添加设置架构的语句。 3. 确认Eclipse和GDB的版本兼容。 4. 检查Eclipse的配置,确保CDT插件正确配置,并且设置了正确的GDB debugger路径。 5. 检查系统环境变量,确保GDB的路径已添加到系统的PATH变量中。 希望这些方法可以帮助你解决问题。如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值