45

たとえば、0x46767f0 が NSString* に属していることはわかっていますが、探しているバグを見つけるのに役立つ NSString を見つける方法はありますか?

4

5 に答える 5

64

私はあなたが探していると信じています:

info symbol <addresss>

アドレス addr に格納されているシンボルの名前を出力します。addr に正確に保存されているシンボルがない場合、GDB は最も近いシンボルとそこからのオフセットを出力します。

例:

(gdb) info symbol 0x400225
_start + 5 in section .text of /tmp/a.out

(gdb) info symbol 0x2aaaac2811cf
__read_nocancel + 6 in section .text of /usr/lib64/libc.so.6

詳細については、こちらをご覧ください。

于 2009-04-18T00:33:10.357 に答える
16

gdb> リスト *0xAABBCCDD

これにより、ファイル名と行番号がわかります。

于 2012-11-29T17:01:20.180 に答える
6

それがスタック変数である場合、それを行うことを認識している方法はありません。それ以外の場合はp/a <pointer symbol or address>、シンボル名 (または最も近いシンボル名へのオフセット) を出力してみてください。

于 2009-04-18T00:34:11.837 に答える
3

ポ 0x46767f0

-descriptionオブジェクトにメッセージを送信します。これにより NSString の内容が出力されますが、ランダムなメッセージをランダムなアドレスに送信する前に、Brian の回答を使用してアドレスの内容を確認することをお勧めします。

于 2009-04-18T06:05:17.237 に答える