加载符号后 GDB 自动执行命令
GDB automate commands after symbols have been loaded
我正在使用 GDB 远程调试微控制器。
我有多个构建目标,我想要一个通用的 .gdbinit 文件来闪烁 and/or 调试所有不同的目标。
我正在使用 BAT 脚本启动 GDB,其中可调试的 .elf 文件作为 GDB 的参数提供。这样 GDB 将加载符号并且我的 .gdbinit 也被正确 运行。
我的 gdbinit:
define target hookpost-remote
echo POST TARGET REMOTE\n
# do stuff
#load ./path/to/foo.elf # I don't want this
load # This works if and only if the .elf has been loaded already
monitor reset
quit
end
target remote tcp:localhost:2331
问题是 gdbinit 是 运行 并且在加载二进制文件之前发出 "target remote" 命令,GDB 会产生错误:
.gdbinit:15: Error in sourced command file: No executable file specified. Use the "file" or "exec-file" command.
紧接着:
Reading symbols from path/to/foo.elf
如果我从 gdbinit 中删除 "target remote" 命令并在 GDB 控制台中手动调用它,一切正常,但我不想那样做,我想自动化一切。
如何在加载符号后自动执行命令?在 GDB 完成初始化后和 运行ning gdbinit 之后是否会触发某种挂钩?我可以挂钩 post 阅读符号吗?
您使用 .gdbinit
的目的可能包括一些可以通过 -x [cmds_file]
命令行选项传递的命令文件更好地完成的目的。
一点实验表明 .gdbinit
是 运行 在 程序文件加载之前,而 -x
文件是 运行 之后.
我正在使用 GDB 远程调试微控制器。 我有多个构建目标,我想要一个通用的 .gdbinit 文件来闪烁 and/or 调试所有不同的目标。
我正在使用 BAT 脚本启动 GDB,其中可调试的 .elf 文件作为 GDB 的参数提供。这样 GDB 将加载符号并且我的 .gdbinit 也被正确 运行。
我的 gdbinit:
define target hookpost-remote
echo POST TARGET REMOTE\n
# do stuff
#load ./path/to/foo.elf # I don't want this
load # This works if and only if the .elf has been loaded already
monitor reset
quit
end
target remote tcp:localhost:2331
问题是 gdbinit 是 运行 并且在加载二进制文件之前发出 "target remote" 命令,GDB 会产生错误:
.gdbinit:15: Error in sourced command file: No executable file specified. Use the "file" or "exec-file" command.
紧接着:
Reading symbols from path/to/foo.elf
如果我从 gdbinit 中删除 "target remote" 命令并在 GDB 控制台中手动调用它,一切正常,但我不想那样做,我想自动化一切。
如何在加载符号后自动执行命令?在 GDB 完成初始化后和 运行ning gdbinit 之后是否会触发某种挂钩?我可以挂钩 post 阅读符号吗?
您使用 .gdbinit
的目的可能包括一些可以通过 -x [cmds_file]
命令行选项传递的命令文件更好地完成的目的。
一点实验表明 .gdbinit
是 运行 在 程序文件加载之前,而 -x
文件是 运行 之后.