2012-08-09 75 views

回答

33

首先,你需要三個文件:的dSYM文件,應用程序文件和崩潰日誌。

打開X代碼,在項目導航顯示產品文件夾,「在Finder中顯示」應用程序文件。在這裏你也可以找到dSYM文件。將它們複製到一個文件夾。

現在打開終端,然後導航至您預先複製這兩個文件的文件夾。運行:dwarfdump --uuid Application_name.app/Application_name 您應該收到應用程序的UUID。 運行以下命令:dwarfdump --uuid Application_name.app.dSYM - 您將再次收到UUID,該UUID應與先前接收的UUID相匹配。

打開崩潰日誌(X代碼 - 主辦單位 - 崩潰),並找到出現的「二進制圖像」標題行。這是第一行中的另一個UUID,它應該再次與先前在終端中收到的相匹配。現在

,你放心墜毀您正在研究構建了記錄,所以再次打開崩潰日誌文件,找到線程0部分,應該有兩條線,你的應用程序名稱和兩個地址。如:

Application_name 0x123456 
Application_name 0x987654 

在您應該運行終端現在:atos -arch armv7 -o address1 address2(地址1和地址2應該與前兩個地址來替換,並與您的系統的ARMv7的 - 它顯示在線路,在哪兒買UUID)。

快速調試!

編輯:我想提一提this崗位作爲我的基地。

+1

的ATOS命令所描述的過程並不總是工作,由於ASLR在最近的iOS版本。注意這個解釋,而不是做什麼:http://stackoverflow.com/questions/13574933/ios-crash-reports-atos-not-working-as-expected/13576028#13576028 – Kerni 2012-12-08 16:18:59

1

其實,你不能解碼的dSYM文件,但是從它那裏得到錯誤詳細 1.找到日誌文件中的崩潰線程和地址:以下是0x0nnn 2.找到日誌文件的本地代碼類型:以下是arm64
3.找到的dSYM文件(符號文件),從提取.xcarchive:以下是xx.app.dSYM

dwarfdump --lookup 0x0nnn --arch=[arm64 armv6 armv7] xx.app.dSYM