gpt4 book ai didi

arm - 加载符号后 GDB 自动执行命令

转载 作者:行者123 更新时间:2023-12-02 17:34:25 25 4
gpt4 key购买 nike

我正在使用 GDB 远程调试微 Controller 。我有多个构建目标,我希望有一个通用的 .gdbinit 文件来刷新和/或调试所有不同的目标。

我使用 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 中删除“目标远程”命令并在 GDB 控制台中手动调用它,一切都会正常,但我不想这样做,我想自动化一切。

加载符号后如何自动执行命令? GDB 完成初始化并运行 gdbinit 后是否会触发某种钩子(Hook)?我可以挂载阅读符号吗?

最佳答案

您可能使用 .gdbinit 来实现一些目的,其中包括通过 -x [cmds_file] 命令行选项传递的命令文件可以更好地完成的一些目的。

一个小实验表明,.gdbinit 在加载程序文件之前运行,而-x 文件则在运行>之后

关于arm - 加载符号后 GDB 自动执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55185573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com