这个 GDB 输出是什么意思?
What does this GDB output means?
我有一个字符缓冲区,当 info locals 我得到这个时:
buf = "0X6467[=10=]0[=10=]0E20517[=10=]0[=10=]0pG6517[=10=]0[=10=]0[=10=]0[=10=]0[=10=]0[=10=]010[=10=]5[=10=]00G6517[=10=]0[=10=]0[=10=]0 [=10=]0[=10=]0[=10=]0[=10=]0[=10=]0[=10=]0 74517[=10=]0[=10=]0[=10=]0311[=10=]0[=10=]0[=10=]0[=10=]00L6517[=10=]0[=10=]0W04517[=10=]0[=10=]02[=10=]0[=10=]0[=10=]0[=10=]0[=10=]0[=10=]0[=10=]0hJ6517[=10=]0[=10=]0hJ6517[=10=]0[=10=]01[=10=]5$6"
我很困惑如何解释这个输出。我排除了成对的六位数字(2 个六位 = 1 个字节)。怎么读?它甚至不是十进制表示法,因为有些大于 256。
I am confused how to interpret this output.
默认情况下,GDB 以八进制表示法打印不可打印的字符,因此 0
为 0xc8
。缓冲区中的第一个字符是 0xc8 0x58 0xe6 0xec ...
.
如果将缓冲区打印为十六进制,则可能更容易解释缓冲区。使用 x/20xb buf
检查前 20 个字符,或 p/x buf
检查整个缓冲区直到终止 NUL
.
我有一个字符缓冲区,当 info locals 我得到这个时:
buf = "0X6467[=10=]0[=10=]0E20517[=10=]0[=10=]0pG6517[=10=]0[=10=]0[=10=]0[=10=]0[=10=]0[=10=]010[=10=]5[=10=]00G6517[=10=]0[=10=]0[=10=]0 [=10=]0[=10=]0[=10=]0[=10=]0[=10=]0[=10=]0 74517[=10=]0[=10=]0[=10=]0311[=10=]0[=10=]0[=10=]0[=10=]00L6517[=10=]0[=10=]0W04517[=10=]0[=10=]02[=10=]0[=10=]0[=10=]0[=10=]0[=10=]0[=10=]0[=10=]0hJ6517[=10=]0[=10=]0hJ6517[=10=]0[=10=]01[=10=]5$6"
我很困惑如何解释这个输出。我排除了成对的六位数字(2 个六位 = 1 个字节)。怎么读?它甚至不是十进制表示法,因为有些大于 256。
I am confused how to interpret this output.
默认情况下,GDB 以八进制表示法打印不可打印的字符,因此 0
为 0xc8
。缓冲区中的第一个字符是 0xc8 0x58 0xe6 0xec ...
.
如果将缓冲区打印为十六进制,则可能更容易解释缓冲区。使用 x/20xb buf
检查前 20 个字符,或 p/x buf
检查整个缓冲区直到终止 NUL
.