2008-09-29 48 views
2

簡短問:這個例外是什麼意思? 「EXC_BAD_ACCESS(0x0001)」如何從OS X錯誤日誌中診斷應用程序崩潰?

完整問:如何使用此錯誤日誌信息(以及我在此省略的主題細節)來診斷此應用程序崩潰? (注意:我沒有關於崩潰日誌或操作系統內核的專業知識)。

在這種情況下,我的電子郵件客戶端(Eudora)在每次啓動時都會立即崩潰,並且沒有明顯的系統更改。

Host Name:  [name of Mac] 
Date/Time:  2008-09-28 14:46:54.177 -0400 
OS Version:  10.4.11 (Build 8S165) 
Report Version: 4 
Command: Eudora 
Path: /Applications/[...]/Eudora Application Folder/Eudora.app/Contents/MacOS/Eudora 
Parent: WindowServer [59] 
Version: 6.2.4 (6.2.4) 
PID: 231 
Thread: 0 
Exception: EXC_BAD_ACCESS (0x0001) 
Codes:  KERN_PROTECTION_FAILURE (0x0002) at 0x00000001 

回答

2

要回答您的簡短問題:EXC_BAD_ACCESS表示非法內存訪問。這意味着程序試圖在其虛擬地址空間之外使用一個內存位置(粗略地說,它是從OS內核請求的內存區域)。這就是Unix人通常稱之爲「分段錯誤」(segfault)的原因,以及Windows通常稱之爲「訪問衝突」(AV)或「一般性保護錯誤」(GPF)的原因。 (是的,你可能已經知道了,但我只是確保...)

崩潰報告是否說明正在引用的內存地址?報告是否包含調用堆棧或核心轉儲?所有這三者都非常有價值,特別是核心轉儲,因爲您可以將它加載到調試器並從異常點重新啓動程序。如果內存地址看起來完全沒有問題(在虛擬地址的上半部分,或者非常接近0,那麼問題出現的位置就很好)。

2

只是爲了完成邁克爾的答案 - 分析崩潰日誌不是你應該做的。 eudora程序員搞砸了(或者提供eudora程序員用來製作eudora的工具的人)。你可以做的最好的事情是將崩潰日誌的全部內容複製並粘貼到郵件客戶端(嘗試使用MAIL,因爲你似乎無法使用eudora,現在,哈哈哈),並將它發送到eudora-support @ eudora.com以及對發生的事情的簡短描述。找出問題出在哪裏是他們的工作。