我有一個char buffer[100]
我試圖在運行時的各個階段使用gdb讀取它的內容。GDB的打印不會打印出我的字符數組可讀的東西
我使用p buffer
,我也得到
"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
我如何得到p
將其轉換爲可讀的格式???
確保緩衝區中有可打印的(可讀的)數據? GDB打印出現的內容 - 不是你想要在那裏。目前,'strcmp(buffer,「/ *」)== 0'。 – 2010-04-11 00:40:33
嗯,所以我肯定是在這個新的,作爲一方評論,爲什麼strcmp(緩衝區,「/ *」)== 0重要?顯然,在這個緩衝區中的方式不僅僅是「/ *」,所以對我來說strcmp會返回0 ... – sepiroth 2010-04-11 00:44:16
這是表示「Null」的「\」,它表示C字符串的末尾。所以你的緩衝區被看作是持有一個C字符串,確實包含字符串「/ *」(這就是Jonathan Leffler用他的'strcmp'公式得出的結果 - 注意當字符串相同時'strcmp'返回0)。 – 2010-04-11 00:49:11