我正在嘗試使用symbolicatecrash,並獲得有趣的結果。一位同事在另一臺機器上構建了我們的發行版本,所以他給我發送了dSYM文件。運行在symbolicatecrash不喜歡我的dSYM文件
發現/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash
它填補了所有的蘋果功能,但不是symbolicatecrash文件後礦。問題似乎是它不能(或不會)找到dSYM文件,可能是因爲它有我同事的機器信息。當我從崩潰報告複製十六進制地址,我可以使用dwarfdump這樣的:
dwarfdump --lookup 0x0001f892 --arch ARMv6的路徑/到/ MyApp.app.dSYM
它給我的行號那個單一的電話正確。另外,symbolicatecrash能夠從我們的代碼中計算遊戲的行數,但不能算Apple。我不知道他爲什麼看不到Apple的東西,但所有這些讓我相信問題在於如前所述找到dSYM。
所以。有沒有什麼辦法可以將dSYM的路徑傳遞給symbolicatecrash命令,或者使其工作的一些其他方式?因爲,嚴肅地說,製作一個爲你的文件做某種魔術「搜索」的工具是完全愚蠢的,只是爲了找不到它,因爲它不想。
此外,任何想法爲什麼我的同事的構建不會顯示任何蘋果的功能? 雖然我在這裏,但在崩潰文件中「+」是什麼意思?就像這樣:
0x00059f8c - [一個UIWindow的SendEvent:] + 108
很好的答案。我只想指出,Apple可能故意不在其二進制文件中包含這類信息(文件名和行號),原因是:他們不想泄露任何關於其源代碼的額外信息。即使我們(開發人員)有這些信息,我們將如何處理它?這不像我們可以調試Apple的代碼,所以知道文件名和行號是無用的。 – Roberto 2012-01-28 22:11:00