gdb 在启动的时候通常想加入一下自己的命令,例如 layout asm
, b main
这些。
新建一个 shell 脚本
gdb-multiarch --tui a.out \
--eval-command="target remote localhost:1234" \
--eval-command="b main"
gdb 在启动的时候,会在你的当前工作目录下查找 .gdbinit
这个文件,并把它的内容作为gdb命令进行解释,所以如果我把脚本命名为.gdbinit
,这样在启动的时候就会处理一些你常用的命令。
实际使用时,会存在一个问题,比如你需要在 /home/tyustli/code/c_project/.gdbinit
写代码, 因此,你想在当前目录下添加 .gdbinit
方便调试。
这个时候如果直接 /home/tyustli/code/c_project/.gdbinit
下添加 .gdbinit
, 然后调用 GDB
会报如下错误:
auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
解决办法如下:
1、在/home/tyustli 下添加一个 .gdbinit
, 默认GDB初始化时会调用这个文件。
2、编辑该 .gdbinit
, 加上 set auto-load safe-path /home/tyustli/code/c_project/.gdbinit
set auto-load safe-path /home/tyustli/code/c_project/.gdbinit
3、在/home/tyustli/code/c_project/.gdbinit
(即你要Debug的目录)下,同样添加一个.gdbinit
4、编辑该 .gdbinit
,添加你需要的一些指令,例如:
layout asm
b 5
https://blog.csdn.net/shenjin_s/article/details/103196892