利用.dSYM跟.app文件准确定位Crash位置
首先,确保在release(Ad Hoc或者App Store)一个版本时,保存了对应的xxx.app和xxx.dSYM文件。
其次,验证xxx.crash、xxx.app和xxx.dSYM三者的uuid是否一致。
验证方法:
1)查看xxx.app的uuid。
- $ dwarfdump --uuid mobileguard.app/mobileguard
2)查看xxx.dSYM的uuid。
- $ dwarfdump --uuid mobileguard.app.dSYM/Contents/Resources/DWARF/mobileguard
3)xxx.crash。
Note:
在这之前,需要找到对应的app和dSYM文件。这两个文件是在后缀为.archive的文件中,在我的机器(Mac OS 10.9.1,Xcode5.0.2)上,.archive文件在“/Users/mikelin/Library/Developer/Xcode/Archives/”文件夹下对应的日期文件夹中,也可以从Xcode > Organizer > Archive 下找到对应的Archive包。
确保三者uuid一致以后,用symbolicatecrash工具生成易读的日志信息。
先准备环境:
1)链接symbollicatecrash到/usr/bin/中,就可以直接使用sybollicatecrash命令。
- $ ln -s /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash /usr/bin/symbolicatecrash
2)设置xcode DEVELOPER_DIR。
- export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
然后执行命令:
- symbolicatecrash m.crash mobileguard.app.dSYM > n.crash
接下来是最重要的环节:
- $ xcrun atos -arch armv7 -o mobileguard.app/mobileguard 0x00037000
下面这个是我机器上看到的结果:
- $ xcrun atos -arch armv7 -o mobileguard.app/mobileguard 0x00037000
- -[MobileLocationViewCtrl viewDidLoad] (in mobileguard) (MobileLocationViewCtrl.m:56)
利用.dSYM跟.app文件准确定位Crash位置的更多相关文章
- 【转】 利用.dSYM和.app文件准确定位Crash位置
http://blog.csdn.net/jinzhu117/article/details/20615991 首先,确保在release(Ad Hoc或者App Store)一个版本时,保存了对应的 ...
- iOS crash 追终 ,iOS 如何定位crash 位置
https://developer.apple.com/library/ios/technotes/tn2151/_index.html 错误分析是基于设备中的crash log 与 编译文件时生成的 ...
- 用windbg查看dmp文件,定位bug位置
windbg + .dmp + .pdb + 源代码,可以看到是哪个代码崩溃的 设置符号文件所在路径 File->Symbol File Path... 在输入框中填入.pdb文件所在的文件夹路 ...
- macOS下利用dSYM文件将crash文件中的内存地址转换为可读符号
一.使用流程 Windows下的程序运行崩溃时,往往可以利用pdb文件快速解析出程序崩溃的具体位置,甚至可以对应到源代码的具体行数.macOS下的symbolicatecrash也具备相应的功能.对应 ...
- 定位crash的问题
一般都要符号化crash日志,但是低内存奔溃却没有堆栈日志 A Low Memory report differs from other crash reports in that there are ...
- 手机发烫是为何—— App 电量测试定位方法
为什么要做电量测试 随着移动互联网的快速发展,手机的实用性.娱乐性越来越强.日常使用中发现,安装了应用后,即使不怎么使用,电量也会消耗很快.但如果恢复出场设置充满电后,手机可以待机很长时间.真相只有一 ...
- 利用VS2005进行dump文件调试
前言:利用drwtsn32或NTSD进行程序崩溃处理,都可以生成可用于调试的dmp格式文件.使用VS2005打开生成的DMP文件,能很方便的找出BUG所在位置.本文将讨论以下内容: 1. 程序编译选 ...
- 利用VS2005进行dump文件调试(17篇博客)
前言:利用drwtsn32或NTSD进行程序崩溃处理,都可以生成可用于调试的dmp格式文件.使用VS2005打开生成的DMP文件,能很方便的找出BUG所在位置.本文将讨论以下内容: 1. 程序编译选 ...
- 使用MAP文件快速定位程序崩溃代码行 (转)
使用MAP文件快速定位程序崩溃代码行 =========================================================== 作者: lzmfeng(http://lz ...
随机推荐
- ios svn学习笔记(一)
1, 遇到问题 git add in Xcode generates com.apple.dt.IDESourceControlErrorDomain error -70 这个错误发生在要右键选择要c ...
- 【ActiveMQ】1.下载安装启动使用
官网下载:http://activemq.apache.org/activemq-5121-release.html 官网指导文档:http://activemq.apache.org/version ...
- cmd 中键入netstat,net等出现不是内部或外部命令,也不是可运行的程序或批处理文件
这是环境变量的问题,查下环境变量中path项是否包含%SystemRoot%\system32;再查下%SystemRoot%\system32有没有netstat.exe这个文件
- 研读:Shielding applications from an untrusted cloud with Haven
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdHJ1c3Ribw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- Java线程状态中BLOCKED和WAITING有什么差别?
刚才在看CSDN的问答时.发现这个问题. 原问题的作者是在观察jstack的输出时提出的疑问.那么BLOCKED和WAITING有什么差别呢? 答复在JDK源代码中能够找到,例如以下是java.lan ...
- Python--图像处理(2)
skimage提供了io模块,顾名思义,这个模块是用来图片输入输出操作的.为了方便练习,也提供一个data模块,里面嵌套了一些示例图片,我们可以直接使用. 引入skimage模块可用: 1 from ...
- 转:Java 自动装箱与拆箱(Autoboxing and unboxing)
转: http://www.cnblogs.com/danne823/archive/2011/04/22/2025332.html 什么是自动装箱拆箱 基本数据类型的自动装箱(autoboxing) ...
- 性能测试脚本开发(LR.NET控件)
性能测试过程中,最耗费经历的就是编写性能测试脚本的过程,在大部分的测试工具中都是采用录制的方式,通过录制产生脚本,然后根据需要进行修改,以及参数化.有些时候为了能够完成某一个功能的脚本,需要将录制下来 ...
- 16. Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】
转载:http://blog.csdn.net/linxingliang/article/details/52001744 在上一节使用是配置文件的方式进行使用druid,这里在扩散下使用编程式进行使 ...
- 解决:cannot execute binary file
linux系统下遇到cannot execute binary file的问题,一般由以下情况造成: 非root用户或者无执行权限 编译环境不同(程序由其他操作环境复制过来) 对于第一种情况,采用增加 ...