2012-12-19 29 views
2

我正在使用Xcode和Clang作爲編譯器,並且我正在通過地址爲0xCDCDCDCD的指針調用函數時獲得EXC_BAD_ACCESS。我也看到一些變量設置爲0xABABABAB左右。我環顧四周,發現這些值在Visual Studio中用作幻數,以幫助查看問題所在。然而,我找不到Xcode使用的魔術數字列表(或Clang,不知道它是來自編譯器還是IDE的機制)。有誰知道我在哪裏可以找到一個?Xcode/Clang的神奇數字?

回答

2

我不知道任何全面的列表,這似乎是您正在尋找的內容,但0xCDCDCDCD通常在您使用Debug版本分配一塊內存時由C運行時使用。

1

我不知道任何這樣的列表,除了Wikipedia "magic debug value" list列出調試中使用的各種幻數。


麥克上面所說的,機會是指針被初始化爲無效的內存地址在調試版本,使其更容易捕捉到潛在的指針相關的錯誤。

這是一個編譯器或運行時功能,但它們被初始化的確切值應該無關緊要,因爲該功能在那裏使指針調試變得更簡單。 EXC_BAD_ADDRESS只是嘗試對未分配的內存執行操作的結果,實際上是預期的行爲。

這些數字在Visual Studio中被用作幻數,可能正是因爲它們可以用來在運行編譯程序時找到未初始化的指針。