大家好,我正在調試Mac OS 10.5上的C++應用程序。偶爾,我會做一些不好的事情,導致段錯誤或其他非法操作。這會導致應用程序掛起一段時間,並最終通過系統對話框通知崩潰。 「掛起」和對話之間的等待時間很重要;幾分鐘。如果我嘗試強制退出應用程序或從命令行執行任何操作,則什麼也不會發生。如果我從調試器(gdb)啓動應用程序,一旦發生崩潰,我會回到gdb提示符,並可以乾淨地退出過程。雖然gdb加載速度很慢,但這並不理想。在Mac OS X上調試和查殺應用程序?
反正你們可以推薦一下嗎?有沒有辦法在OS X中禁用崩潰報告機制?
謝謝。
更新1: 這裏是從XCode執行中遺留下來的殭屍。顯然,xcode無法正常阻止他們。
1 [email protected]:~$ ps auxw|grep -i Reader 2 eightieight 28639 0.0 0.0 599828 504 s004 R+ 2:54pm 0:00.00 grep -i reader 3 eightieight 28288 0.0 1.1 1049324 45032 ?? UEs 2:46pm 0:00.89 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader 4 eightieight 28271 0.0 1.1 1049324 45036 ?? UEs 2:45pm 0:00.89 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader 5 eightieight 28146 0.0 1.1 1049324 44996 ?? UEs 2:39pm 0:00.90 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader 6 eightieight 27421 0.0 1.1 1049328 45024 ?? UEs 2:29pm 0:00.88 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader 7 eightieight 27398 0.0 1.1 1049324 45044 ?? UEs 2:28pm 0:00.90 /Users/eightieight/workspace/spark/spark/reader/browser/build/Debug/Reader.app/Contents/MacOS/Reader
您正在使用的XCode?如果是這樣,你不應該看到崩潰記者對話框。另外,你在構建一個基於GUI的應用程序還是僅僅是一個控制檯應用程序? 編輯:順便說一下,如果你正在使用的XCode,如果你同時在XCode中運行的GUI應用程序得到一個錯誤EXEC_BAD_ACCESS,你可以簡單地按停止圖標立即終止正在運行的應用程序。 – Tom 2010-02-23 05:46:43
是的,如果我在XCode或gdb中運行我的應用程序,一切正常。當我遇到段錯誤時,應用程序會退回調試器,一切都很好。但是,如果我從控制檯運行應用程序,它似乎永遠掛起。 – EightyEight 2010-02-23 16:32:19
你是如何調用應用程序?通常情況下,如果某個應用程序出現故障,遊戲結束,則該過程已停止。但是,如果你已經設法從其他環境調用它,那麼該進程的某些資源可能會保持打開狀態,並且它還不能放手,並且你需要等待父進程首先執行某些操作(可能會有問題檢測出錯了)。 – 2010-02-24 23:30:56