如何分析友盟上给出的错误分析(stack trace)

来源:互联网 发布:自动连接移动数据 编辑:程序博客网 时间:2024/06/07 09:51

面对友盟上的错误报告,怎么分析呢?怎么将错误精确到具体的位置呢?

下面讲下方法:


上图是我的一个stack trace

由于这类的崩溃信息很难再重现, 没有任何的重现步骤(也没必要花这个时间去测试),所以我们得找到发布该版本时的原始代码,可能会需要回朔到以前的SVN或者Git版本。然后找到当时上传代码时使用的DYSM文件,这文件通常在.xcarchive文件中。通过反编译这个二进制文件找到崩溃的地方。

通过终端定位到app的DYSM目录下:

1)在实用工具里打开终端,一直用cd命令打开,找到你开发包对应的文件XXXXXX.app.dSYM.   路径一般是:~/Library/Developer/XCode/Archives/YYYY-MM-DD/XXXX.app.dSYM

2)用cd打开您打包时间对应的开发包,一般名字是类似这样:XXXX 14-5-5 下午5.53.xcarchive

3)然后继续用cd命令打开,找到DEARF文件,一般是Contents/Resources/DWARF

最后在终端输入: xcrun atos -arch armv7 -o ExamdaSchool 0xaaaaa (xcrun 是去掉警告的作用)


其实对于成功生成archvie的项目, 在这个archive的包中, 是可以通过显示包内容, 看到DSYMs文件夹和一个products文件夹, 继续显示DSYMs文件夹下,可以看到一个xxx.app.DSYM文件,继续对它显示包内容,可以看到Contents/Resources/DWARF/xxxx文件, 这个文件是编译后的二进制文件,通过它可以进行反编译,从而找到二进制对应的源码位置。你只要找到DWARF文件,然后拷贝到桌面或者其它目录下,然后cd 到DWARF这个路径,然后执行xcrun atos -arch armv7 -o ExamdaSchool 0xaaaaa

下面是我执行的效果图


0 0
原创粉丝点击