24

ソースコードが利用できないプログラムをデバッグしようとしていますが、std::stringに何が格納されているかを確認する必要があります。私はここをグーグルで調べていて、STLコンテナの出力に関する情報を見つけましたが、すべて変数を参照しており、ソースまたはデバッグ情報はなく、クラスデータのメモリオフセットしかありません。これを行う方法はありますか?

4

2 に答える 2

36

すべてstd::stringの実装には、どこかに生の文字へのポインタがあります。の場合g++ 4.x、そのポインタは0文字列のオフセットにあります。

文字列がegにあることがわかっている場合は0x7fffffffda88

print *(char**)0x7fffffffda88

必要なものです。

于 2011-07-21T14:51:16.277 に答える
26

おそらく最も簡単なオプションは、次のようにc_strメソッドを使用することです。

print myStr.c_str()
于 2016-08-05T13:29:32.563 に答える