1

我在 char 数组中存储了一些 unicode 字符“лфи”。当我查看 (x/30s ) gdb 中的值时,它会显示如下内容:

0x80ac47c: "?\004>\004" 0x80ac482: "A\0048\004;\004L\004D\004>\004=\004:\0045\004/"

为什么会这样,这些 \004 代表什么?

4

2 回答 2

1

您应该阅读gdb 的字符集文档,因为 gdb 似乎正在转义这些字符,而不是让终端显示它们。

于 2013-03-27T10:15:58.100 回答
1

请参阅Gdb Unicode 打印。如果您dbg_dump在代码中重载该函数,则通过print dbg_dump("лфи")在 gdb 中调用它有望调用您的重载函数,从而产生正确的 UTF-8 表示。请记住,在您的自定义中,dbg_dump您可能需要明确表示您想要显示 Unicode 字符。

于 2013-03-27T10:26:40.440 回答