gdbでwstringを出力するにはどうすればよいですか?
sanxiyn
質問する
8129 次
3 に答える
8
call printf %ls
ときどきしか機能しませんが、gdb 6.3 で完全に機能させるには、次のvoid
キャストと改行が必要\n
です。
call (void)printf("\"%ls\"\n",str.c_str())
非ASCIIコードポイントも表示する.gdbinitに入れることができるより信頼性の高いコマンドを次に示します。
wc_print を定義する エコー " セット $c = (wchar_t*)$arg0 ながら ( *$c ) もし ( *$c > 0x7f ) printf "[%x]", *$c そうしないと printf "%c", *$c 終わり $c++ を設定 終わり エコー "\n 終わり
またはのいずれかを使用してwc
(の略) を入力するだけです。wc_print
std::wstring
wchar_t*
于 2009-09-10T16:48:49.287 に答える
1
を持っているとしますstd::wstring str
。以下は gdb で機能するはずです。
call printf("%ls", str._M_data())
call
(printf の -l オプションは長い文字列になります。通常の gdb printf はそのオプションを好まないため、" " ステートメントが必要だと思います。)
于 2008-09-19T21:45:10.350 に答える