我在char数组中存储了一些unicode字符“лфи”。 当我查看(x / 30s)gdb中的值时,它会显示如下内容:
0x80ac47c:“?\ 004> \ 004” 0x80ac482:“A \ 0048 \ 004; \ 004L \ 004D \ 004> \ 004 = \ 004:\ 0045 \ 004 /”
为什么会这样发生?这些\ 004代表什么?
答案 0 :(得分:1)
你应该阅读gdb's character set documentation,因为看起来gdb正在逃避这些字符,而不是让终端显示它们。
答案 1 :(得分:1)
见Gdb Unicode Printing。如果你在代码中重载dbg_dump
函数,通过在gdb中调用print dbg_dump("лфи")
,它将有希望调用你的重载函数,从而产生正确的UTF-8表示。请记住,在您的术语dbg_dump
中,您可能需要明确表示您要显示Unicode字符。