iOS Crash 分析(文一)- 開始
1. 名詞解釋
1. UUID
一個字串,在iOS上每個可執行檔案或庫檔案都包含至少一個UUID。目的是為了唯一識別這個檔案。
2. dwarfdump
蘋果提供的命令列工具,其中一些功能就是檢視可執行檔案件或庫檔案的UUID
3. symbolicatecrash
一個蘋果提供的指令碼。可以將crash日誌符號化為可讀的堆疊資訊。
4. atosl
蘋果提供的命令列工具,可以將crash的base_address和load_address轉化為可讀的堆疊資訊。symbolicatecrash就是使用這個命令來做符號化的。
2.如何獲取Crash日誌
1.模擬器崩潰
模擬器崩潰後可以在“~/Library/Logs/DiagnosticReports/”下找到crash日誌。
2.真機崩潰
1.Xcode獲取日誌
手機和mac連線後,開啟Xcode選擇window進入Organizer(快捷方式是 Shift-CMD-2),在 Organizer 視窗上, 選中 Devices 標籤欄. 在左側的導航面板上,選中 Device Logs, 如下圖所示:
選擇對應裝置的Device Logs選單,就可以看到崩潰日誌。
開啟圖最上邊的Device Logs選單就可以看到mac曾經同步過的iOS裝置的崩潰日誌。
2.手動獲取日誌
日誌存放的路徑 ~/Library/Logs/CrashReporter/MobileDevice/DEVICE_NAME
DEVICE_NAME是你想要檢視的裝置。
下面是我的終端輸出的資訊:
➜ DiagnosticReports pwd /Users/zhuolaiqiang/Library/Logs/DiagnosticReports ➜ DiagnosticReports ls QQ_2014-05-30-132026_Anyhacker.crash atosl_2014-06-04-151416_Anyhacker.crash eclipse_2014-05-29-192522_Anyhacker.crash eclipse_2014-06-02-145714_Anyhacker.crash SogouInput_2014-05-29-151154_Anyhacker.crash atosl_2014-06-04-151447_Anyhacker.crash
3.符號化
1.利用Xcode符號化
app在真機裝置上Crash後,我們可以讓iOS裝置和mac連線,然後開啟Xcode選擇window進入Organizer(快捷方式是 Shift-CMD-2),在 Organizer 視窗上, 選中對應裝置的 Device Logs標籤,然後找到對應app日誌檔案,如圖所示:
這樣就可以看到已經符號化完畢的日誌。
2.利用symbolicatecrash指令碼符號化
symbolicatecrash是蘋果隨Xcode一起提供的專門用來做崩潰日誌符號化的指令碼工具(perl)。
symbolicatecrash存放路徑是
"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash"。
使用方法是:
symbolicatecrash xx.crash xx.DSYM
xx.crash:需要符號化的崩潰日誌檔案
xx.DSYM:編譯APP時產生的DSYM檔案,此檔案可以不指定,symbolicatecrash會在硬碟內自動搜尋和匹配該檔案(前提是你的硬碟記憶體有這個檔案)
原文地址:http://blog.csdn.net/diyagoanyhacker/article/details/41247367
相關推薦
iOS Crash 分析(文一)- 開始
1. 名詞解釋 1. UUID 一個字串,在iOS上每個可執行檔案或庫檔案都包含至少一個UUID。目的是為了唯一識別這個檔案。 2. dwarfdump 蘋果提供的命令列工具,其中一些功能就是檢視可執行檔案件或庫檔案的UUID 3. symbolicatecra
Spring源碼分析(十一)bean的加載
tty matches 判斷 alias desc getc ntb 結合 步驟 摘要:本文結合《Spring源碼深度解析》來分析Spring 5.0.6版本的源代碼。若有描述錯誤之處,歡迎指正。 經過前面的分析,我們終於結束了對XML配置文件的解析,接下來將會面
osgEarth的Rex引擎原理分析(十一)如何根據earth檔案options建立不同的地理資訊引擎節點
目標:問題(九)中10 在對MapNode做初始化時,需要建立地理資訊引擎節點。 void MapNode::init() { _terrainEngine = TerrainEngineNodeFactory::create( terrainOptions ); } osgEa
Android ConstraintLayout完全解析和效能分析(章節一)
一、說在前面的話 在這裡預祝大家2019年:豬事順利,青春永豬,豬圓玉潤,豬籠入水—八面來財 對於這個已經出現了兩年的新佈局ConstraintLayout,之前只是作為知識瞭解並未在真正的使用它,今天讓我們來從幾個方面解讀ConstraintLayout並對它的效能做細緻化分析。
Linux啟動過程分析(十一)-----customize_machine(註冊開發板相關硬體資訊)
初始化過程進行到下面這一步: c0599c48 t __initcall_customize_machine3 呼叫的函式及其位置如下: Setup.c (arch\arm\kernel):arch_initcall(customize_machine) static int __in
演算法設計與分析(十一)
300. Longest Increasing Subsequence Given an unsorted array of integers, find the length of longest increasing subsequence. Example
iOS 面試題(十一)
能理解你的疑問,但是你問的問題不太正確,不存在編譯時的物件這個概念。 首先,宣告 NSString *testObject 是告訴編譯器,testObject是一個指向某個Objective-C物件的指標。因為不管指向的是什麼型別的物件,一個指標所佔的記憶體空間都是固定的,所以這裡宣告成任何型別的物件,
scrapy原始碼分析(十一)----------下載器Downloader
經過前面幾篇的分析,scrapy的五大核心元件已經介紹了4個:engine,scheduler,scraper,spidemw。 還剩最後一個downloader,這個下載器關係到了網頁如何下載,內容相對來說是最為複雜的一部分,這篇教程就逐步分析其原始碼。 下載操作開始於
Netty原始碼分析 (十一)----- 拆包器之LengthFieldBasedFrameDecoder
本篇文章主要是介紹使用LengthFieldBasedFrameDecoder解碼器自定義協議。通常,協議的格式如下: LengthFieldBasedFrameDecoder是netty解決拆包粘包問題的一個重要的類,主要結構就是header+body結構。我們只需要傳入正確的引數就可以傳送和接收正確
【原創】Linux虛擬化KVM-Qemu分析(十一)之virtqueue
# 背景 - `Read the fucking source code!` --By 魯迅 - `A picture is worth a thousand words.` --By 高爾基 說明: 1. KVM版本:5.9.1 2. QEMU版本:5.0.0 3. 工具:Source Insight
IOS崩潰Crash分析(MTA騰訊雲分析,友盟)
公司做IOS的走了,東西就丟給了我這個從來沒有做過IOS的。最近為了捕獲BUG,集成了MTA平臺的BUG收集。問題就來了,對於我這種,雖然沒有學過OC,但是寫寫程式碼還是可以的,xCode中除錯下BUG也行,但是碰到這種Crash的,還不帶崩潰路徑的,完全
Storm入門(十一)Twitter Storm源代碼分析之CoordinatedBolt
業務 什麽 協議 ack 第一個 ng- rec 功能 這一 作者: xumingming | 可以轉載, 但必須以超鏈接形式標明文章原始出處和作者信息及版權聲明網址: http://xumingming.sinaapp.com/811/twitter-storm-code
iOS學習筆記(十七)——文件操作(NSFileManager)
技術分享 append hint pbo -cp fcm object 寫入 rtmp http://blog.csdn.net/xyz_lmn/article/details/8968213 iOS的沙盒機制,應用只能訪問自己應用目錄下的文件。ios不像Androi
python學習(十一) 文件和流
內存 無緩沖 abcd 連接 sss 文件操作 打開文件 while 3.5 11.1 打開文件 >>> f = open(r‘c:\text\somefile.txt‘), 第一個參數是文件名,必須有;第二個是模式;第三個參數是緩沖。 11.1
linux(十一)之初始化文件
fun ps1 史記 intern header 例如 internet $path 名稱 前面寫了很多linux的知識,其實很多都是命令的,所以要去多多的練習才能學的更好,加油為了好工作。 要麽現在懶惰,未來討飯。要麽現在努力,未來愜意。 一、初始化文件概述 1
Linux(十一) 文件目錄權限 chmod umask chown
mar chan 擁有 term 套接字 分享圖片 文件類型 直接 bae 一 文件目錄權限定義 首先我們先認識一下文件目錄的權限定義,請看下面ls -l的結果我們發現一個文件或者目錄的前面有10位的信息,第一位表示文件類型,大概有一下幾種類型:d 表示目錄 - 普通文件
Spark項目之電商用戶行為分析大數據平臺之(十一)JSON及FASTJSON
附加 處理 用戶行為分析 基於 大數據平臺 base IT 為什麽 init 一、概述 JSON的全稱是”JavaScript Object Notation”,意思是JavaScript對象表示法,它是一種基於文本,獨立於語言的輕量級數據交換格式
[轉載] Mac OS X背後的故事(十一)Mac OS X文件系統的來龍去脈(下)
ber 標準 rate eas 賓夕法尼亞 apple 思想 上層 ipad 由於各種缺點,幹掉HFS+勢在必行,然而用什麽取代HFS+呢?蘋果開始秘密移植下一代的文件系統—ZFS,然而在諸多因素的幹擾下,Mac OS X的ZFS支持卻只是曇花一現,未來文件系統之路將走向何
talib 中文文檔(十一):Cycle Indicator Functions 周期指標
ica baidu form clas period not real lin component Cycle Indicator Functions 不是很懂,歡迎指教 HT_DCPERIOD - Hilbert Transform - Dominan
[匯] iOS Crash相關(2)
16進制 自信 dea aaaaa sta 崩潰報告 內存 block nil 開發程序的過程中不管我們已經如何小心,總是會在不經意間遇到程序閃退。腦補一下當你在一群人面前自信的拿著你的App做功能預演的時候,流暢的操作被無情地Crash打斷。聯想起老羅在發布Smartis