最新リリースの gdb--gdb7.5 をインストールしました。これを使用して utf-8 でエンコードされた C++ プログラムをデバッグしたとき、コマンド「set charset utf-8」で gdb charset を utf8 に設定しました。ただし、文字列 : を出力したい場合char *str = "明天是个好天气"
、「p str」の結果は、コンテンツではなく文字列のアドレスになります。gdbがutf8文字列をデバッグするために必要なものはありますか?
ブレークポイント 1、test.cpp:6 で () をテスト
6 char *str = "我们的世界多么美好";
(gdb)n
8 printf( "%s\n" , str );
(gdb) p str
$1 = 0x40067c "0\221们2\204265\214321016好"
(gdb) 文字セット UTF-8 を設定
(gdb) 文字セットを表示
ホスト文字セットは「UTF-8」です。対象文字セットは「UTF-8」です。対象のワイド文字セットは「auto; 現在は UTF-32」です。
(gdb) p str
$2 = 0x40067c
(gdb)