專案一之設定除錯錯誤資訊

2021-06-26 20:54:23 字數 1104 閱讀 2354

方案1:nszombieenabled

先選中工程,依次 "product"-"edit scheme",左欄選擇"run...",右欄選中arguments,然後在environment variables下面新增以下三個屬性,設值為yes。

nsdebugenabled

nszombieenabled

nsautoreleasefreedobjectcheckenabled

有時候在程式出錯的時候能準確定位到奔潰的那一行, 或者會給你下面這樣的提示,而不僅僅是exec_bad_access:

message sent to deallocated instance 0x126550

如果要檢視上面位址的分配情況:

開啟mallocstacklogging(xcode4勾選下mallocstacklogging就行)

出錯時shell malloc_history pid address

另:有時候可以過載respondstoselector可以幫你找到程式崩潰時最後執行的函式,然後排查。

方案2:新增全域性斷點

xcode4可以很方便的新增全域性的異常斷點

方案3:中斷和未捕獲異常

常見的兩個訊號:

1).exc_bad_access 試圖訪問非法記憶體,導致sigbus或者sigsegv訊號。

2).未能攔截obj_exception_throw導致的sigabrt訊號。

2.方法

1).使用nsuncaughtionhandler安裝乙個handler攔截未攔截異常。

2).使用signal函式安裝乙個handler攔截bsd訊號(sigkill[kill -9]和sigstop[control+z]無法攔截)。

兩個c函式

安裝(與全域性異常斷點衝突,當有這樣的斷點是,下面攔截函式失效)

3.具體例項

1. 重點在於嘗試繼續執行程式。告訴使用者那些因為這些未攔截的異常和訊號導致的崩潰,或者自己記錄,甚至可以避開這樣導致的崩潰。不過,如果多個訊號攔截了,這可能失效。非常推薦看看這篇文章。 2.

xcode4 設定除錯錯誤資訊小結

方案1 nszombieenabled 先選中工程,依次 product edit scheme 左欄選擇 run.右欄選中arguments,然後在environment variables下面新增以下三個屬性,設值為yes nsdebugenabled nszombieenabled nsaut...

輸出錯誤資訊與除錯資訊

public class printerroranddebug 輸出結果 run 程式裡面有bug 該程式沒做ut main 方法開始執行了.printerroradddebug.main main 方法結束了.build successful total time 2 seconds 總結 sys...

輸出錯誤資訊與除錯資訊

system類的out與err是兩個類成員變數,不用建立system類的例項物件就可以直接使用。雖然都是標準輸出流,但是應該靈活運用它們完成不同的資訊輸出,out主要是輸出除錯資訊的輸出流,在eclipse控制台中以黑色字型標識,而err是錯誤資訊的標準輸出流,用於輸出緊急錯誤資訊,所以在eclip...