Gdb 如何仅对特定拱门执行命令?

Gdb 如何仅对特定拱门执行命令?,gdb,Gdb,我试图为本机和远程GDB创建一个通用的gdbinit,其中本机是i386,远程是ARM。对于i386,我有set反汇编风格的intel命令,它会中断针对ARM的GDB的初始化 我发现的唯一让我知道arch(至少是i386 vs ARM)的东西是 show arch命令,但它只是将其输出打印到stdout,不允许我获取它进行比较 那么,有没有办法只对某些体系结构执行命令而不对ohers执行命令?您可以使用Python插件忽略错误: python try: gdb.execute("set d

我试图为本机和远程GDB创建一个通用的
gdbinit
,其中本机是i386,远程是ARM。对于i386,我有
set反汇编风格的intel
命令,它会中断针对ARM的GDB的初始化

我发现的唯一让我知道arch(至少是i386 vs ARM)的东西是
show arch
命令,但它只是将其输出打印到stdout,不允许我获取它进行比较


那么,有没有办法只对某些体系结构执行命令而不对ohers执行命令?

您可以使用Python插件忽略错误:

python
try:
   gdb.execute("set disassembly-flavor intel")
except:
   pass
end
或者您可以检查架构:

python
if "(currently i386)" in gdb.execute("show arch", to_string=True):
  gdb.execute("set disassembly-flavor intel")
end

你能使用Python插件吗?@FlorianWeimer不知道你指的是什么类型的插件。如果你的意思是键入
python
gdbinit
中的一些python代码,那么我想我可以。我只是不知道GDB Python API的哪一部分可以在出现任何不好的运行之前用于获取arch。