iOS --------Crash 分析(一)
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会在硬盘内自动搜索和匹配该文件(前提是你的硬盘内存有这个文件)
iOS --------Crash 分析(一)的更多相关文章
- iOS Crash 分析 符号化崩溃日志
参考: http://blog.csdn.net/diyagoanyhacker/article/details/41247367 http://blog.csdn.net/diyagoanyhack ...
- IOS crash分析
此处不讨论具体的如何根据.dsym文件解析crash log的方式. 什么是崩溃: 不希望出现的中断,APP收到了系统发出的unhandle signal,来源主要由系统内核,处理器,或者应用程序本身 ...
- iOS开发之Crash分析,以及收集
一 先谈谈iOS的Crash收集方式: 1. APP 发生crash,用户手机手机上肯定会有crash纪录,当然删除了该app,或是删了再装 crash纪录还是没了. 2. 如果用户设置-隐私 同 ...
- iOS crash日志分析
iOS crash日志分析 一. 寻找crash文件:手机崩溃后的ips或者crash文件(ips文件可以直接修改成crash文件,直接改后缀名就可以了),这里说下如何拿到crash文件 1. 把运行 ...
- 了解和分析iOS Crash
WeTest 导读 北京时间凌晨一点,苹果一年一度的发布会如期而至.新机型的发布又会让适配相关的同学忙上一阵子啦,并且iOS Crash的问题始终伴随着移动开发者.本文将从三个阶段,由浅入深的介绍如何 ...
- [转][iOS Crash文件分析]-如何使用symbolicatecrash工具
上传一软件,被拒了,自己测试了n遍都未出现这个情况,今天用symbolicatecrash工具分析了一下苹果提供的Crash文件,最终查到是 - (void)mapView:(MKMapView *) ...
- iOS: Crash文件解析(一)
iOS Crash文件的解析(一) 开发程序的过程中不管我们已经如何小心,总是会在不经意间遇到程序闪退.脑补一下当你在一群人面前自信的拿着你的App做功能预演的时候,流畅的操作被无情地Crash打断. ...
- IOS Bug分析
异常代码是SIGABRT.通常, SIGABRT 异常是由于某个对象接收到未实现的消息引起的. 或者,用简单的话说,在某个对象上调用了不存在的方法. iOS应用崩溃日志分析 分析iOS Crash文 ...
- 漫谈iOS Crash收集框架
漫谈iOS Crash收集框架 Crash日志收集 为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如 KSCrash,plcrashreporter,C ...
随机推荐
- 获取元素计算后的css样式封装
获取元素计算后的css样式封装: function getCss(obj,attribute) { if(obj.currentStyle) { return obj.currentStyle[att ...
- Unable to convert MySQL date/time value to System.DateTime 错误
C#读取MySql时,如果存在字段类型为date/datetime时的可能会出现以下问题“Unable to convert MySQL date/time value to System.DateT ...
- mac安装java8
http://stackoverflow.com/questions/24342886/how-to-install-java-8-on-mac brew tap caskroom/cask brew ...
- 解决ugui中Image使用iTween的ColorTo、ColorFrom等不生效
查看iTween的源码找到ColorFrom函数,看该函数的注释“/// Changes a GameObject's color values instantly then returns them ...
- 【转】request.getServletPath()和request.getPathInfo()用法
转自:https://my.oschina.net/sub/blog/182408 在 Web 中,我们通常需要获取 URL 相对于 Webapp 的路径,主要是下面的几个方法: request.ge ...
- var a=b=c=1; 和 var a=1, b=2, c=3; 的区别。
function test(){ var a=b=c=1; var a=1, b=2,c=3; } 1中b\c 为全局变量, a为私量 2中a\b\c为私量
- android 从 phonegap 到 js webview 交互
像生活类.办公协同类. 动态添加,下载等. 1.phonegap 我这里用了旧的版本,可能新版本变化大了. 创建asset资源文件夹,然后新建index.html copy 相应的js 文件进来. 创 ...
- SqlServer windowss身份登陆和sa身份登陆
今天重新装了系统,但是计算机名变了,于是修改了计算机名,然后装了SQLSEVER,安装完成后登录,发现无论用WINDOWS身份还是SQLSERVER身份都登录不了 1.先说说sqlserver身份登录 ...
- RESTFUL Architecture
Just review some articles about RESTFUL stuff, my understanding is RESTFUL is another more general v ...
- touches 事件捕获不到
在UIView上加载了一个UIScrollView(全屏),touches 事件捕获不到了 原因:UIView的touch事件被UIScrollView捕获了,无法传递下去 解决方法:写一个UIScr ...