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 ...
随机推荐
- 【转】Wireshark基本用法
原地址:http://blog.jobbole.com/70907/ 按照国际惯例,从最基本的说起. 抓取报文: 下载和安装好Wireshark之后,启动Wireshark并且在接口列表中选择接口名, ...
- [转]webpack
什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...
- three.js立方体
<!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - ge ...
- 缺少.lib文件导致的Link2019 解决方案汇总
环境Vs2015, Win10 添加lib的方法在末尾 下面的错误都是我在写Direct3D程序中遇到的, 记下来方便查找 4.ws2_32.lib 3. version.lib _GetFil ...
- Mac锁屏
http://www.dbform.com/html/2006/192.html 应用程序-实用工具-钥匙锁-菜单栏中的钥匙串访问-偏好设置-选中“在菜单栏中显示钥匙串”
- 闲来无事,写个基于UDP协议的Socket通讯Demo
项目一期已经做完,二期需求还没定稿,所以最近比较闲. 上一篇写的是TCP协议,今天写一下UDP协议.TCP是有连接协议,所以发送和接收消息前客户端和服务端需要建立连接:UDP是无连接协议,所以发送消息 ...
- linux 下使用配置文件
最近鼓捣双机热备,写了些shell脚本 适用配置文件 以 ifbeat 为例,linux的标准的配置文件中等号两遍不能存在括号, 空格 或特殊符号可以用转衣服 ' \' beat=true prima ...
- ARP报文发送的可视化实现
一.安装VS2013,下载wpdpack,为VS2010配置WinpCap环境: ⑴首先在View中选择Property Manager,然后展开工程,再展开Debug|Win32 ,接着右击 Mir ...
- c++书
http://www.enet.com.cn/eschool/video/c++/ 视频 http://www.runoob.com/cplusplus/cpp-inheritance.html ...
- 《一个操作系统的实现》学习笔记(一) bochs源码安装及配置
前言:本机环境ubuntu 14.04 bochs 2.4.5 一.下载 官网 http://bochs.sourceforge.net/ 二.安装 1.将下载好的压缩包解压并进入该目录 .tar.g ...