GDB调试全解析:从基础命令到内核调试
1. GDB命令文件
在每次运行GDB时,有些操作是重复的,比如设置sysroot。将这些命令放在一个命令文件中,每次启动GDB时自动运行,会非常方便。GDB按以下顺序读取命令:
1. 从 $HOME/.gdbinit
文件读取。
2. 从当前目录的 .gdbinit
文件读取。不过,出于安全考虑,最新版本的GDB会拒绝加载当前目录的 .gdbinit
文件。你可以在 $HOME/.gdbinit
中添加如下内容来覆盖此行为:
set auto-load safe-path /
或者,如果你不想全局启用自动加载,可以指定特定目录:
add-auto-load-safe-path /home/chris/myprog
我个人倾向于使用 -x
参数指定命令文件,这样能明确文件位置,避免遗忘。
Buildroot会在 output/staging/usr/share/buildroot/gdbinit
创建一个包含正确sysroot命令的GDB命令文件,内容类似如下:
set sysroot /home/chris/buildroot/