【iOS】atos命令符化號crash文件

程序員定位bug的方式千千萬,這是其中一種。
測試在測試中,客戶在使用中難免會遇到各種各樣的bug崩潰,此時找到你,就需要能夠定位bug位置,并解決bug。

首先我們需要準備兩個個文件,appName.app. dSYM.crash并將他們放在同一個文件夾下。

appName.app. dSYM

這個文件分兩種情況:

1.Xcode直接打包安裝到手機

可以如下圖所示直接右擊并點擊Show in Finder,在同目錄下尋找.dSYM文件。


如果沒有.dSYM文件,很有可能是Debug下沒有生成.dSYM。可以在Buid Setting中打開該選項。

2.利用.ipa安裝(包括appStore、hoc證書分發)

可以在Xcode->Window-Organizer中找到當時打包的. xcarchive文件,然后右擊Show In Finder,找到文件后右擊顯示包內容,然后在里面找到appName.app. dSYM文件。

.crash

可以直接連接手機,打開Xcode->Window->Devide and Simulators,然后選擇對應的Device,并點擊View Device Logs,根據時間點選擇對應的crash文件。

開始符號化

1.將兩個文件放入同一個文件夾中后,打開終端并cd到對應文件夾下
2.查看DSYM文件UUID

dwarfdump --uuid appName.app.dSYM
//輸出結果:UUID: ECCA19DE-145B-3F22-BA41-6252F7570BFB (arm64) appName.app.dSYM/Contents/Resources/DWARF/appName

3.查看.crash UUID,利用Sublime Text等工具直接打開.crash文件,滾動到Binary Images:位置后,<ecca19de145b3f22ba416252f7570bfb>這個就是.crash的UUID,兩個UUID必須完全一致,否則將無法正確符號化。

0x1004f0000 - 0x101943fff appName arm64  <ecca19de145b3f22ba416252f7570bfb> /var/containers/Bundle/Application/7465D6C7-DBD9-458B-9B25-3BE599C09AF8/appName.app/appName

3.分析.crash文件

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libswiftCore.dylib              0x00000001cb264b00 specialized _fatalErrorMessage+ 2112256 (_:_:file:line:flags:) + 296
1   libswiftCore.dylib              0x00000001cb264b00 specialized _fatalErrorMessage+ 2112256 (_:_:file:line:flags:) + 296
2   libswiftCore.dylib              0x00000001cb070524 _ArrayBuffer._checkInoutAndNativeTypeCheckedBounds+ 62756 (_:wasNativeTypeChecked:) + 232
3   libswiftCore.dylib              0x00000001cb073510 Array.subscript.getter + 84
4   appName                             0x00000001005feba0 0x1004f0000 + 1108896
5   appName                             0x00000001005fcc88 0x1004f0000 + 1100936
6   appName                             0x00000001005fce84 0x1004f0000 + 1101444
7   UIKitCore                       0x00000001c9f180f0 -[UIApplication 

可以看到是Thread 0 Crashed

3.執行如下命令,然后在換行處輸入:0x00000001005feba0(這個根據上面分析.crash文件獲得的具體地址)
arm64是架構 ,appName是app文件,0x1004f0000是基地址

xcrun atos -o appName.app.dSYM/Contents/Resources/DWARF/appName -l 0x1004f0000 -arch arm64

終端輸出:

AppDelegate.updateRootViewController() (in ) (AppDelegate.swift:104)

此時此刻,定位到了bug具體的位置,如果沒定位成功可以繼續選擇其他的地址試試看。。。。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,530評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,407評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,759評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,204評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,415評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,955評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,675評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374

推薦閱讀更多精彩內容