我正在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())