定位release的Crash位置
来源:互联网 发布:贪心算法c语言 编辑:程序博客网 时间:2024/05/17 00:03
对于已经上线的应用,苹果测试的应用,或者是release环境包导致的crash,我们就需要一些特殊的手段来通过crash log进行分析定位了。
首先需要release版本的xxx应用的三个文件:xxx.app.dSYM文件、xxx.app文件、xxx.crash文件,确保他们有相同的uuid才能生成才能生证日志文件:
(xxx是工程名)
1.导出xxx.crash
通过Xcode的Organizer查看某台iphone设备的DeviceLog,选择需要的crash log,导出xxx.crash文件。(苹果测试crash会给你这个文件)
2.xxx.app
找到当前iphone设备上安装的ipa文件,更改文件后缀名为zip,解压后得到Payload文件夹,你需要的app文件就在其中了。
3.找到对应build版本的dSYM文件
dSYM文件是iOS编译后保存16进制函数地址映射信息的文件,每次应用程序build后,都会生成对应的xxx.app, xxx.app.dSYM文件。
4.确定dSYM、app以及crash文件的关系
每一个xxx.app, xxx.app.dSYM文件都拥有相应的uuid,crash文件也有uuid,只有三者uuid一至才表明之三者可以解析出正确的日志文件。
查看xxx.app文件的uuid的方法,在terminal中输入命令:
dwarfdump --uuid xxx.app/xxx
查看xxx.app.dSYM文件的uuid的方法,在terminal中输入命令:
dwarfdump --uuid xxx.app.dSYM
而.crash的uuid位于,crash日志中的Binary Images:中的第一行尖括号内。如:
armv7 <8bdeaf1a0b233ac199728c2a0ebb4165>
下面用symbolicatecrash指令生成日志文件
Xcode6.1路径, symbolicatecrash在: Xcode6.0.app ▸ Contents ▸ SharedFrameworks ▸ DTDeviceKitBase.framework ▸ Versions ▸ A ▸ Resources▸ symbolicatecrash (不同版本xcode路径是不同的)
确认文件:
$ ln -s /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash /usr/bin/symbolicatecrash
设置xcode DEVELOPER_DIR:
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
把xxx.app.dSYM文件、xxx.app文件、xxx.crash放在同一路径下执行:
symbolicatecrash xxx.crash xxx.app.dSYM > ~/crash.txt
crash.txt就是和你debug模式所看到一样类型的输出了。
thx:
http://blog.csdn.net/guojin08/article/details/41351813
- 定位release的Crash位置
- 如何定位导致Crash的代码位置
- 如何定位导致Crash的代码位置
- 定位iphone程序crash的位置
- 快速定位app crash 的位置
- 如何定位导致Crash的代码位置
- 如何定位导致Crash的代码位置
- 如何定位导致Crash的代码位置
- 使用windbg定位crash位置
- Android crash特殊位置定位
- Xcode定位crash代码位置
- Linux 下使用 gdb 定位 crash 位置
- iOS 根据 crash 崩溃 报告的内存地址定位到代码位置
- iOS 根据 crash 崩溃 报告的内存地址定位到代码位置
- iOS 根据 crash 崩溃 报告的内存地址定位到代码位置
- iOS 根据crash报告定位到代码中具体出现问题的位置
- dSYM-如何快速定位到已发布程序的crash位置(一)
- iOS 根据 crash 崩溃 报告的内存地址定位到代码位置
- Linux Kernel 学习笔记15:阻塞IO设计
- 枚举类型 enum,NS_ENUM,NS_OPTIONS
- linux server disk磁盘空间扩展记录- (给/home扩展空间)
- 栈的应用:利用顺序栈求解迷宫问题(改编自严蔚敏算法)
- freemarker 数字格式化
- 定位release的Crash位置
- java内存泄露和内存溢出
- Bootstrap
- iOS 8 WebKit框架概览
- WEB版微信协议部分功能分析
- 什么是JSON
- zookeeper在启动的时候遇到启动无法查看状态的问题,试过许多网上提供的方法依旧暂无解决方案
- Java NIO系列教程(二) Channel
- ios 事件拦截