3

次の変数を使用してアセンブリ プログラムをコンパイルしました。

.data
x: .long 1337
str: .string "Hallo Welt\n"

gdb では、str アドレスを指定して inspect コマンドを使用したいと考えていました。

(gdb) x str
0x6c6c6148: Cannot access memory at address 0x6c6c6148

うまくいかない理由がわかりません。

4

1 に答える 1

0

0x6c6c6148は「Hall」であるため、gdbは文字列の内容をアドレスとして解釈しようとしています。マニュアルから:

addr、開始表示アドレス
addrは、GDBがメモリの表示を開始するアドレスです。式にポインタ値を含める必要はありません(ただし、そうすることもできます)。常に1バイトのメモリの整数アドレスとして解釈されます。

試してみてくださいx/s &str、それはうまくいくかもしれません。

于 2012-10-03T11:45:09.483 に答える