次の変数を使用してアセンブリ プログラムをコンパイルしました。
.data
x: .long 1337
str: .string "Hallo Welt\n"
gdb では、str アドレスを指定して inspect コマンドを使用したいと考えていました。
(gdb) x str
0x6c6c6148: Cannot access memory at address 0x6c6c6148
うまくいかない理由がわかりません。
0x6c6c6148は「Hall」であるため、gdbは文字列の内容をアドレスとして解釈しようとしています。マニュアルから:
addr、開始表示アドレス
addrは、GDBがメモリの表示を開始するアドレスです。式にポインタ値を含める必要はありません(ただし、そうすることもできます)。常に1バイトのメモリの整数アドレスとして解釈されます。
試してみてくださいx/s &str
、それはうまくいくかもしれません。