現(xiàn)象
在項目中打了全局異常斷點,在app運行的時候直接停在main函數(shù)中,直接無視斷點繼續(xù)運行app還可以繼續(xù)運行。這是什么???
我們知道當程序crash的時候,全局斷點一般情況下都可以捕獲到crash的地方。如果捕獲不到則會跳到main函數(shù)中,程序直接crash掉,此時控制臺中會打印出對應的錯誤信息
解決辦法
方法1:在stackoverflow中說可能是字體的問題。而從崩潰的堆棧信息中也發(fā)現(xiàn)最好崩潰在了語言的地方。
上圖icon在蘋果的官方文檔中也標識為languages。(圖標意義參考這里)
現(xiàn)在看看我們還從堆棧信息中還能獲得什么有用的信息?
檢查后發(fā)現(xiàn)了一個.ttf的東西。
這恰恰是iOS中自定義字體的格式。恍然大悟這個字體格式的文件在工程中已經被刪除了。自作孽....
把之前自定義字體使用到的地方全部修改掉,重新運行,一切OK。瞬間感覺輕松了許多。
方法2: 右鍵點擊 All Exceptions => Edit Brackpoint… => Exception 選項選擇 Objective-C, 這種方法雖然會暫時回避掉中斷的問題, 但是如果你的項目中有用到 C++ 代碼, 也就自然沒法自動在 C++ 代碼中中斷了(All Exception).
參考地址:stackoverflow