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 上使用的 gdb
和 gdb-multiarch
配置不同,gdb
仅支持原生架构,而 gdb-multiarch
支持跨架构调试。
大概您实际上想要检测的是当前二进制文件不支持您需要的目标架构(arm
?)。
在bind-to-qemu
用户自定义函数中,可以尝试set architecture arm
。
如果出错,bind-to-qemu
的其余部分不应执行。
我想定义一个命令,它在 gdb-multiarch
下执行 X,但在正常 gdb
下 运行 时打印出有用的消息。我的脚本如何确定它的 运行 属于哪两个?
为什么?当我启动 gdb-multiarch 时,我可以绑定到 qemu-arm 会话。当我在 gdb 中尝试这样做时,出现了奇怪的错误。很容易忘记 运行 gdb(而不是 -multiarch),我想 bind-to-qemu
告诉我“这必须是 运行 在 gdb-multiarch 下”。
你的问题假定和gdb-multiarch
之间存在一些差异,但没有没有任何区别。
推测您在 OS 上使用的 gdb
和 gdb-multiarch
配置不同,gdb
仅支持原生架构,而 gdb-multiarch
支持跨架构调试。
大概您实际上想要检测的是当前二进制文件不支持您需要的目标架构(arm
?)。
在bind-to-qemu
用户自定义函数中,可以尝试set architecture arm
。
如果出错,bind-to-qemu
的其余部分不应执行。