gpt4 book ai didi

检查变量何时被修改

转载 作者:太空狗 更新时间:2023-10-29 12:06:58 25 4
gpt4 key购买 nike

在 Linux 中使用 Valgrind 或任何其他调试器,如何查看变量被修改的位置。我正在使用 gcc。请注意,我不想使用 gdb 单步执行代码。我只想运行程序并让调试器最后报告我,在代码中修改变量的地方。

最佳答案

嗯,考虑一下它不是 Can I set a breakpoint on 'memory access' in GDB?精确副本,因为它要求多一点。所以:

  1. 使用 gdb
  2. 找到你想观察的地址(硬件观察点只对观察地址起作用,所以你必须运行它到变量或对象被实例化的点,获取它们的地址并使用watch该地址上的命令。
  3. 将命令附加到地址以提供回溯(或您需要收集的任何其他信息)并继续。

所以你会有这样的东西:

p &variable
watch *$$
cmd
bt
c
end

(我不完全确定 $$ ,我通常使用 $<i>n</i> 命令打印的 p )。

关于检查变量何时被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8047168/

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