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 に答える