gpt4 book ai didi

gdb - 以编程方式访问 gdb 中观察点的旧值和新值

转载 作者:行者123 更新时间:2023-12-01 00:34:09 24 4
gpt4 key购买 nike

我真正在做的是尝试在设置或清除单个位时设置观察点。我通过在包含该位的单词上设置一个观察点,然后使其以 *word & mask 为条件来做到这一点。 (用于设置,或 (~*word) & mask 用于清除。)
问题是同一个字中的一些其他位可能会被修改,并且条件可能已经匹配。如果我有旧值和新值,我可以设置条件 (($old ^ $new) & mask) .
我看着 python gdb.Breakpoint类,但它似乎也没有收到此信息。
我想我可以发疯并设置一个命令列表来记录当前值每当 *word 的值时更改,并将其用作 $old .但有一半时间我使用它,我实际上是通过 rr 使用它,所以我可能会倒退。

最佳答案

在 gdb 中没有直接获取这些值的方法;这是一个 wish-list bug (以您的确切情况为例...)多年.. 信息存储在 old_val 中领域struct bpstats与断点关联的对象;但这仅用于打印旧值,不会在其他地方暴露。

一种选择可能是更改 gdb 以通过便利变量或通过 Python 公开此值。

I suppose I could go crazy and set a command list that records the current value whenever the value of *word changes, and use that as $old. But half the time I'm using this, I'm actually using it through rr, so I might be going backwards.



这似乎是可行的。您的脚本可以检查当前的执行方向。主要的困难是记住在创建这个观察点时重置保存的值,或者在禁用然后重新启用它之后。

关于gdb - 以编程方式访问 gdb 中观察点的旧值和新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42287337/

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