2011-11-30 31 views
28

過去,隨着舊的Xcode 3的出現,每當我發生崩潰時,Xcode都停在顯示崩潰的違規行。這是好時光,很好調試。Xcode總是在發生崩潰後在main.m停止

現在和Xcode 4.2,每一個應用程序崩潰時,它停在main.m文件在該行

int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); 

,讓不知道是什麼原因造成的崩潰。這個問題可以在任何類中,但當它崩潰時,它總是會停在main.m上。

有沒有辦法讓它再次正常工作?

感謝

注:我也問過這之前,SO,但鑑於當時的解決方案被證明是不令人滿意的,問題仍然存在。

+0

以供將來參考,不再次發佈了同樣的問題。編輯您的原始問題以提供新信息並將其返回到首頁。 –

+0

我要求刪除舊的。 – SpaceDog

回答

42

他們改變行爲,請按照this tutorial to break on all exceptions

編輯:(鏈接可能腐爛,所以我會在這裏複製信息)

一個在Xcode 4.2隱藏的寶石是「異常斷點「功能。一旦啓用它,您的調試生活將變得更加容易,因爲無論何時在應用程序中引發異常,Xcode都會調出導致異常發生的代碼行。如果你的調用堆棧窗口是空的(這在我使用iOS應用程序時有時會發生),這特別有用。不要在輸出窗格中依賴簡單的錯誤消息,而是不包含比異常類型及其錯誤消息更多的簡短錯誤消息,而是可以準確查看問題出在哪裏!

您可以在左下角開放斷點導航窗格,單擊X按鈕添加一個異常斷點:

點擊「添加例外斷點...」菜單項後,你會看到這個斷點配置視圖中打開了:

點擊完成按鈕,您將在b的列表中的新異常斷點reakpoints。如果你想擁有你所有的Xcode工作區包括異常斷點處,右鍵單擊(Ctrl +單擊)就可以了,然後打開「移動斷點」菜單項:

點擊「用戶」後在子菜單中,您將看到異常斷點位於用戶組斷點中。打開另一個項目,它會自動包含在斷點列表中。

快樂調試!

+13

謝謝。他們必須瘋了。這個變化的重點是什麼?讓開發者的生活悲慘?謝謝!!!!!!!!!!!!!!!! – SpaceDog

+0

任何方式將其設置爲永久的xcode? – SpaceDog

+0

本教程末尾有關將其移動到「User」的位使其成爲永久的 – BarrettJ

5

只要嘗試下面爲我工作的步驟。

  1. 打開首選項,選擇行爲選項卡。
  2. 從左欄選擇「意外退出」。
  3. 選擇「顯示當前視圖的調試器」。

不幸的是,這是恢復到main.m文件在編輯器中再次:)現在你需要按照以下步驟

  1. 打開偏好,選擇行爲選項卡。
  2. 只要進入「運行結束後」
  3. 沒有找到「顯示」行,點擊複選框
  4. 在同一行修改的目標去「當前」的下拉菜單。

這應該工作

+1

哇。下一個版本蘋果應該讓它更難配置。謝謝 – SpaceDog

+0

哈哈!他們仍然有** EXACT **相同​​的錯誤。跳到一個沒有告訴你任何東西的文件是沒有意義的。如果我取消選中所有框,我認爲(像蘋果公司教會我的)注意到了。代替發生的事情。 *「如果用戶不想爲這個事件做任何事情,跳到一個隨機無意義的文件」*悲傷。 –