一、先引用一位牛人的博贴:

xcode解crashlog工具symbolicatecrash的使用

在xocde编译app的时候会同时生成一个以dsym(该app对应的符号表)作为后缀的文件,每个app对应一个符号表。手机连接到电脑,用organizer 可以看到Device Logs,将某个crashlog直接拖出来,然后需要通过symbolicatecrash来查看,但是这个工具在xccode4.3的时候改变了存放的位置。

1.给xcode打一个补丁: 命令行运行 /usr/bin/xcode-select -print-path

如果输出”/Developer”或者其他非”/Applications/Xcode.app/Contents/Developer/”的内容,运行下面的命令:

sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/

否则就OK

2.查找symbolicatecrash:find /Applications/Xcode.app -name symbolicatecrash -type f

获取路径,我的是/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Devel-oper/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash

3、将symbolicatecrash设置连接,使得在任何位置都可以使用

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Deve-loper/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/sy-mbolicatecrash /usr/bin/symbolicatecrash

4、将**.app.dsym文件(需要找到对应与crash app版本的dsym文件哦) 和 **.crash 文件 放到同一个文件夹中

我的是:XXX.app.dSYM  和 XXX.crash两个文件

在终端中进入到该文件夹,运行 symbolicatecrash XXX.crashXXX.app.dSYM >log.crash  即可解出crash log —log.crash。

如果看到Error: “DEVELOPER_DIR” is not defined at /usr/bin/symbolicatecrash line 53.

那么设置下 export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

4.3之前

1.直接find /Developer -name symbolicatecrash -type f   就可以进行接下来的步骤

其实发现在organizer直接看该crash log 也可以,据说这样会有些地址没解析出来,所以要用symbolicatecrash来解析一遍  不过暂时没发现区别  还真有区别

如果用organizer看不到目录 就用itools 在文件系统里找  需要越狱哦

真机上crash log 其中一个目录

/var/mobile/Library/Logs/CrashReporte

二、接下来进入正题:

验证uuid:

a. Qzone.app/Qzone 的uuid
b. QZone.app.dSYM 的uuid
c. QZone.crash 的uuid

三者一致才能还原符号表。


1. 将 Qzone.app 、QZone.app.dSYM、 QZone.crash放在同一个目录:

2. 核对uuid是否一致:




三者一致。

3. 进行解析:


让解析后重新生成文件: log.crash。

ok ,结束。

4. 还原符号表之前与还原之后的对比:

还原前:



还原后:



over.

使用 symbolicatecrash 解析崩溃堆栈的更多相关文章

  1. 转: iOS崩溃堆栈符号表使用与用途

    转:http://bugly.qq.com/blog/?p=119 iOS崩溃堆栈符号化,定位问题分分钟搞定! 2015.3.16 腾讯Bugly 微信分享   最近一段时间,在跟开发者沟通过程中,萝 ...

  2. 如何用ndk-stack察看android崩溃堆栈

    前提:要打开eclipse的LogCat窗口 1.保存log,先要选中eclipse的LogCat的所有行,点击保存,假设保存到了/User/mac/Desktop/log.txt 2.找到你的so( ...

  3. Android&iOS崩溃堆栈上报

    Android&iOS崩溃堆栈上报 原文地址:http://www.cnblogs.com/songcf/p/4885468.html 通过崩溃捕获和收集,可以收集到已发布应用(游戏)的异常, ...

  4. C++后台服务崩溃堆栈日志

    C++后台服务崩溃堆栈日志 C/C++后台服务运行过程中总会出现一些不容易重现的崩溃故障,由于重现频率低,同时运行在服务器上,导致无法调试,此外服务直接崩溃,常规日志无法截获到有用信息,这时如果能够保 ...

  5. Xcode自带工具symbolicatecrash解析Crash文件

    项目中遇到一台手机运行测试包闪退的现象,而且是一个设备闪退其他设备没有再现的情况 可以看到Crash信息,但是指定的问题给出的是16进制内存地址,根本无法定位问题发生在哪个类的哪个函数中 所以需要解析 ...

  6. symbolicatecrash解析crash文件

    导出crash文件 Xcode -> Window -> Devices and Simulators -> View Device Logs ,然后选中导出. 找到.app文件和. ...

  7. 转:ndk-stack打印崩溃堆栈

            接下来详细说明ndk-stack的使用方法.         第一步:首先获得发生崩溃的共享库.                 如果你是利用ndk-build应用的话,共享库会在$P ...

  8. 苹果审核返回崩溃日志 iOS .crash文件处理 symbolicatecrash.  困扰我多年的牛皮癣根治了 看到这篇文章拿过来用下

    AppStore审核被拒,返回crashLog.txt文件,可是打开后都是十六进制的地址,我们可以使用Xcode自带的 symbolicatecrash 解析得到我们需要的详细崩溃信息crashLog ...

  9. iOS- 全方位解析.crash文件崩溃报告

    1.前言 想来每个iOS攻城狮,都免不了要接触.crash文件 那么什么是.crash文件? iOS app的所有崩溃记录都会记录在设备上,所以对于和我一样没有集成让用户发送崩溃报告功能的iOS开发者 ...

随机推荐

  1. [Educational Codeforces Round#22]

    来自FallDream的博客,未经允许,请勿转载,谢谢. 晚上去clj博客逛来逛去很开心,突然同学提醒了一下,发现cf已经开始40分钟了,慌的一B,从B题开始写,写完了B到E最后收掉了A,结果太着急B ...

  2. bzoj1791: [Ioi2008]Island 岛屿 单调队列优化dp

    1791: [Ioi2008]Island 岛屿 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 1826  Solved: 405[Submit][S ...

  3. CentOs源码安装mysql-5.6.34(cmake)

    安装环境: VM11 CentOs6.7x86_64(Basic Server +Base System:Base\Compatlibility libraries\Debuggin Tools+De ...

  4. 前端工程师:电信专业转前端是如何拿到阿里、腾讯offer的?

    1.个人情况 ● 211本科 985硕士 电信专业 女生 ● 16年3月开始学习前端 ● 16年7月开始实习,共五家实习经历(不是特别厉害的厂) ● 秋招拿到两个offer(阿里.腾讯).没错只有这两 ...

  5. 从 vCenter Server 使用的数据库中清除旧数据 (2075138)(转)

    Document Id 2075138 Symptoms 免责声明: 本文为 Purging old data from the database used by VMware vCenter Ser ...

  6. chrome不支持embed标签解决方案

    <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv=&quo ...

  7. Gradle入门--基本配置

    Gradle配置: Gradle构建脚本 build.gradle Gradle属性文件 gradle.properties Gradle设置文件 settings.gradle build.grad ...

  8. hibernate实体对象的三种状态:自由状态,持久状态,游离状态.

    自由态与游离态的区别: 当一个持久化对象,脱离开Hibernate的缓存管理后,它就处于游离状态,游离对象和自由对象的最大区别在于,游离对象在数据库中可能还存在一条与它 对应的记录,只是现在这个游离对 ...

  9. JNI 方法注册与签名+BufferedReader使用readLine问题

    最近了解了关于JavaJNI接口的一些关于方法注册与签名相关的知识,在此进行一下总结. 使用JNI接口时,我们首先需要把Java方法声明为native: public native void f(); ...

  10. 模块机制 之commonJs、node模块 、AMD、CMD

    在其他高级语言中,都有模块中这个概念,比如java的类文件,PHP有include何require机制,JS一开始就没有模块这个概念,起初,js通过<script>标签引入代码的方式显得杂 ...