在gdb中,是否可以找出具有特定值的内存地址?

时间:2013-10-06 02:20:43

标签: c debugging memory-management gdb memory-address

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

1 个答案:

答案 0 :(得分: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