2011-06-02 92 views

回答

7

這些是octal字符逃脫。它們通常用於將字節插入一個字符串中,該字符串不具有文本意義或需要具有某個二進制值。例如,\377是十六進制值ff或十進制255,這將是ASCII碼爲ÿ,但在此情況下最有可能具有非常不同的含義。

+1

@ x4u,爲什麼不以ASCII或十六進制顯示,而是八進制? – cpuer 2011-06-02 01:51:35

+0

因爲你告訴gdb把它解釋爲通常引用文本的char *'。 – x4u 2011-06-02 01:53:48

+0

@ x4u,爲什麼八進制文本顯示? – cpuer 2011-06-02 02:02:12

5

這不是文字。它看起來像你正在檢查的地址包含另一個指向棧上的東西。試試它爲(char **)0x7fffffffe9c8,或其他一些雙指針類型。

編輯:爲了闡述,OP正在檢查調試器中的非文本數據並詢問編碼。正確的答案只是它不是文字。它是一個整數0x7fffffffebf3,它幾乎肯定是一個指向字符串的指針(因爲它沒有對齊並指向堆棧中某處),這意味着原始指針可能是char **而不是char *

+0

爲什麼downvote? OP正在調試器中檢查非文本數據並詢問編碼。正確的答案只是它不是文字。它是一個整數'0x7fffffffebf3',它幾乎可以肯定是一個指向字符串的指針(因爲它沒有對齊並指向堆棧的某處),這意味着原始指針可能是'char **'而不是'char *'類型。 – 2011-06-02 02:06:20

+0

我的歉意 - 我誤解了你的答案。閱讀你評論中的解釋,答案確實有道理。不幸的是,除非您編輯答案,否則我無法撤銷downvote。 – 2011-06-02 13:22:30

0

你問的部分可以是該地址的shell代碼。

相關問題