1

例如,我想找出哪个内存地址存储值 0xbffff5a0。gdb 可以给我一个特定范围内具有此值的地址列表吗?

4

1 回答 1

3

简短的回答是肯定的。

GDB 提供了一个宏语言工具。您可以定义一个宏函数来迭代地址范围,并与提供的值进行比较。这未经测试,但宏可能看起来像这样:

define findvalue
 set $val=$arg0
 set $p=(char *)$arg1
 set $e=(char *)$arg2
 while ($p < $e)
  if ($val == *(int *)$p)
   print (int *)$p
  end
  set $p=$p+1
 end
end
于 2013-10-06T03:09:39.247 回答