如何访问当前调试实例的cpu寄存器?例如,您可以从 gdb 调用printf "0x%x", $eax
and set $eax_b = $eax
还有一种方法可以通过 gdb 提供的 python 支持来做到这一点吗?或者我应该创建一个可以像这样调用的 python 函数save-reg "eax" $eax
他手上的哪个将寄存器存储在我想要存储它们的数组中?
另一方面,使用 gdb 脚本你也可以set $eax = 1000
例如,我还想在 python 脚本中而不是 gdb 脚本中执行此操作。
我不相信 GDB 的 Python API 提供direct访问寄存器,但根据您想要用它做什么,您可以通过评估 gdb 命令来访问它gdb.execute()
,或评估"$eax"
表达与gdb.parse_and_eval()
:
(gdb) p $rbx
$23 = 140737488348072
(gdb) python print type(gdb.parse_and_eval("$rbx")), gdb.parse_and_eval("$rbx")
<type 'gdb.Value'> 140737488348072
(这个例子是在 gdb 提示符下,但是gdb
模块与 GDB 中执行的其他代码没有任何不同。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)