之前也有用過這個方法,現在來系統的總結一下,當app上線之後,通過第三方(比如友盟)收集bug後,如何定位到具體的錯位代碼。
1.使用dsym工具定位bug
1.1在友盟中得到如下的崩潰日志
1.2下載下傳dsym分析工具,
下載下傳位址: https://pan.baidu.com/s/1eSwxvA6 密碼: 477g
1.3打開dsym工具,選中你發生崩潰的那個版本
1.4按照崩潰日志中的錯誤資訊,選擇CPU類型,這裡選擇arm64,工具自動會把UUID和Slide Address填上去。
1.5把崩潰日志中的那個綠色的位址拷貝到“錯誤資訊記憶體位址”,然後點選分析。可以得到bug的位置,精确到某一行。
2.是用終端指令查詢,其實這個最簡單,不用那麼多複雜的工具。
2.1打開友盟統計的崩潰日志頁面,點選那個綠色的錯誤位址。
2.2拷貝那個黑色框裡面的指令到Mac終端上。然後回車。bug的位置就是紅色圈住的位置。
3.補充一下: Application received signal SIGSEGV
是友盟統計crash的東西,不屬于app崩潰的日志。
Application received signal SIGSEGV
注:這裡面打碼的部分涉及到公司的東西,為了安全起見,打了馬賽克,請見諒。