2010-11-24 8 views
9

gdbを使用してプログラムをステップ実行するときに、ポインタが指している文字列を調べるにはどうすればよいですか?ポインタが0x82c6e10を指しているのがわかります。私はそれが文字列であることを知っています。どのように印刷しますか? printf("%s\n", 0x82c6e10)を使用するとBad format string, missing '"'.と表示されます。gdbが未知のコマンドに不平を言っていないという事実は、私がやっていることのいくつかのバリエーションであることを私に伝えます。私は正しい?私は引用符をエスケープしようとしたが、それは役に立たなかった。gdbを使用してデバッグ中にポインターが指す文字列を印刷するにはどうすればいいですか?

答えて

11

ここprintfは機能が、gdbコマンドではありません。かっこは省略してください。

いっそのこと、ちょうど(あなたが実際にcallコマンドでCの関数printf()を呼び出すことができます。)形式で/s

printコマンド、またはxコマンドを使用し `

gdbはで利用可能な膨大なヘルプがありhelpコマンドそれを試してみてください。

13

試してみてください。

print (char *)pointer 
2

プリント(のchar *)0x82c6e10

16

使用xではなくp

x /s 0x82c6e10 
関連する問題