c-如何根据体系结构实现GDB功能



我正在python中编写一个GDB脚本,以打印应用程序的一些调试信息。问题是支持多种体系结构:x86、alpha、aarch64,可能还会有更多。打印调试信息的功能因体系结构而异。

所以实际上我有以下功能:

def print_info_x86():
#...

def print_info_aarch64():
#...

def print_info_alpha():
#...

我想实现以下目标:

def print_info():
if arch == 'x86':
print_info_x86()
#etc..

有办法做到这一点吗?有一个GDB命令show architecture,可以从objdump -a中提取它,但有没有一种更简单的方法来理解在GDB中编译二进制文件的架构?

https://sourceware.org/gdb/onlinedocs/gdb/Architectures-In-Python.html

像这样的东西:

f = gdb.selected_frame()
a = f.architecture()
print(a.name())

最新更新