gdb 脚本:脚本如何确定它是在 `gdb` 还是 `gdb-multiarch` 下调用?

gdb script: How can a script determine if it is invoked under `gdb` or `gdb-multiarch`?

我想定义一个命令,它在 gdb-multiarch 下执行 X,但在正常 gdb 下 运行 时打印出有用的消息。我的脚本如何确定它的 运行 属于哪两个?

为什么?当我启动 gdb-multiarch 时,我可以绑定到 qemu-arm 会话。当我在 gdb 中尝试这样做时,出现了奇怪的错误。很容易忘记 运行 gdb(而不是 -multiarch),我想 bind-to-qemu 告诉我“这必须是 运行 在 gdb-multiarch 下”。

你的问题假定gdb-multiarch之间存在一些差异,但没有没有任何区别。

推测您在 OS 上使用的 gdbgdb-multiarch 配置不同,gdb 仅支持原生架构,而 gdb-multiarch 支持跨架构调试。

大概您实际上想要检测的是当前二进制文件不支持您需要的目标架构(arm?)。

bind-to-qemu用户自定义函数中,可以尝试set architecture arm

如果出错,bind-to-qemu 的其余部分不应执行。