1

いくつかの Unicode 文字「лфи」を char 配列に格納しています。(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_dumpUnicode 文字を表示したいことを明示的に表現する必要がある場合があることに注意してください。

于 2013-03-27T10:26:40.440 に答える