我刚刚安装了最新发布的gdb--gdb7.5。当我用它来调试使用utf-8编码的c++程序时,我使用命令“set charset utf-8”将gdb charset设置为utf8。但是,当我想打印一个字符串 :char *str = "明天是个好天气"
时,“p str”结果是字符串的地址而不是内容。那么 gdb 是否需要调试 utf8 字符串?
断点1,test() at 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)