要点
- .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可以不断地迭代,能够作为一个方便的命令集合,如果做一些合理的架构设计,能够提供通用的调试方式