gpt4 book ai didi

python - 我如何在 gdb 中使用 python 访问寄存器

转载 作者:太空狗 更新时间:2023-10-30 00:52:04 27 4
gpt4 key购买 nike

如何访问当前调试实例中的 cpu 寄存器?例如,您可以从 gdb 调用 printf "0x%x", $eaxset $eax_b = $eax还有一种方法可以通过 gdb 提供的 python 支持来做到这一点吗?或者我应该创建一个可以像 save-reg "eax" $eax 这样调用的 python 函数吗?他手上的哪一个将寄存器存储在我希望存储它们的数组中?

另一方面,使用 gdb 脚本你也可以 set $eax = 1000例如,我还想从 python 脚本而不是 gdb 脚本中执行此操作。

最佳答案

我不相信 GDB 的 Python API 提供对寄存器的直接访问,但是根据你想用它做什么,你可以通过评估带有 gdb.execute() 的 gdb 命令来访问它,或者用 "$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 中执行的其他代码没有任何不同。)

关于python - 我如何在 gdb 中使用 python 访问寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6103887/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com