如何用Python GDB直接获取x1寄存器中char*的纯字符串值
解决方案
不用正则或字符串拆分的话,直接借助GDB Python API的Value对象就能实现:
# 获取x1寄存器对应的Value对象 x1_ptr = gdb.parse_and_eval("$x1") # 直接读取指针指向的字符串内容 target_str = x1_ptr.string() print(target_str)
原理说明
gdb.parse_and_eval("$x1")会返回对应寄存器的GDB原生Value对象,这个对象代表了x1中存储的内存地址(即char*指针)。- 调用
string()方法时,GDB会自动解析该指针指向的C风格字符串,直接返回不带地址前缀的纯字符串内容,完全符合需求。
内容的提问来源于stack exchange,提问作者python3.789
相关产品推荐
相关产品推荐

