linux解析ios崩溃日志,iOS 崩溃日志 Backtrace的符号化

iOS的崩溃日志配合dsym文件可以找到崩溃时的backtrace,这是解决崩溃的最重要的信息.

如果是在同一台mac上打包, 导入crash log时候会自动将backtrace符号化,可以看到方法名, 文件名和行号

但是,有时候发版的包不是在你的mac上打包的,xcode找不到对应的符号表, backtrace没能符号化如下所示:

Last Exception Backtrace:

0 CoreFoundation 0x2cb535f2 __exceptionPreprocess + 122

1 libobjc.A.dylib 0x3a3c5c72 objc_exception_throw + 34

2 CoreFoundation 0x2ca67152 -[__NSArrayM objectAtIndex:] + 226

3 myapp 0x004fe736 0x9b000 + 4601654

4 myapp 0x00507ed4 0x9b000 + 4640468

5 myapp 0x004fd112 0x9b000 + 4595986

6 myapp 0x003275c6 0x9b000 + 2672070

这里第二行可以看到是一个数组objectAtIndex抛出异常,但是3-6行的是来自应用自己的代码myapp, 这些信息才是最重要的.

其实,只要有原app文件,是可以将这些信息找到.

方法:

将对应版本的myapp.app文件和crash文件放在同一个文件夹下, 注意,一定要是该应用正确版本的app, 因为每次打包, 符号表的映射关系都有可能不同,如果不对应的话是没法符号化的.

然后运行

atos -arch armv7 -o myapp.app/myapp -l 0x9b000 0x004fe736

这个方法 -arch后面是指硬件架构:

iphone 1,2,3 是armv6

iphone4,4s 是 armv7

iphone5,5c是armv7s

iphone 5s, 6, 6+, 6s, 6s+ 是arm64

根据崩溃发生的设备来选择上述架构, myapp.app就是你的app的文件名, 选项l后面的两个16进制数是关键:

第一个数字,取backtrace的要解析的行的第4列, 第二个数字取第3列, 就会得到对应的方法名,文件名,行号.

这样,可以将上述3-6行中一行一行的解析出来,就能看到发生崩溃的地方,再进行分析就简单了.

详解没有dSYM文件 如何解析iOS崩溃日志

Xcode支持崩溃日志自动符号化,前提是本地有当时Build/Archive生成的dSYM文件,iOS崩溃日志符号化后,可以帮助开发者更好的定位问题,但如果dSYM文件丢失或拿到的崩溃日志不是标准的c ...

iOS崩溃日志ips文件解析

iOS崩溃日志ips文件解析  一 简介 测试组的同事在进行稳定性测试时,通常会遇到一些崩溃,然后他们会将这些崩溃日志(一般是ips格式的文件)反馈给开发进行分析,但是这些ips文件中的内容通常是如下 ...

常用获取Android崩溃日志和IOS崩溃日志的几种方法

一:前言 在日常测试app时,经常会遇到崩溃问题,测试快速抓取到崩溃日志可以有效方便开发进行定位,快速解决问题所在测试做到测试分析,定位是非常重要的,这也是判断一个测试能力指标的一大维度. 二:And ...

iOS 崩溃日志分析(个人总结,最实用)

iOS 崩溃日志分析(个人总结,最实用) 要分析奔溃日志需要三个文件:crash日志,symbolicatecrash分析工具,.dSYM符号集 0. 在桌面创建一个crash文件夹 1. 需要Xco ...

iOS崩溃日志

今天看crash report ,有这样两个crash: 调用 stopUpdatingLocation 函数的是一个CLLocationManager 类型的对象,为什么报错的时候会把这个对象转成N ...

iOS崩溃日志分析-b

1名词解释 1.1. UUID 一个字符串,在iOS上每个可执行文件或库文件都包含至少一个UUID,目的是为了唯一识别这个文件. 1.2. dwarfdump 苹果提供的命令行工具,其中一些功能就是查 ...

如何看iOS崩溃日志

重点:Triggered by Thread这句话后边的线程号,快速定位问题出现在那个线程,是否是你的锅:Triggered by Thread所指的线程表示导致异常.崩溃的线程 下边内容转自简书 简 ...

iOS崩溃日志分析

Incident Identifier: 55864905-937C-4172-B435-2ACA13D3070ECrashReporter Key: b85cab13431711060a5fab55 ...

[转]IOS 崩溃日志分析

以下是一个crash log示例: // 1: Process Information Incident Identifier: 30E46451-53FD--896A-457FC11AD05F Cr ...

随机推荐

Ubuntu 16.04 安装 arm-linux-gcc 嵌入式交叉编译环境 问题汇总

闲扯: 实习了将近半年一直在做硬件以及底层的驱动,最近要找工作了发现了对linux普遍要求很高,而且工作岗位也非常多,所以最近一些时间在时不时地接触linux. 正文:(我一时兴起开始写博客,准备不充 ...

翻译:常见问题——ABAP Development Tools for Eclipse

ABAP Development Tools for Eclipse(简称ADT)是一个基于Eclipse的全新ABAP IDE,这篇文档试图回答有关ADT的最重要的常见问题.这只是一个开始,如果你对 ...

JS三元

((productDatas[i].Img.indexOf("http") == -1) ? ("/upload/190-160/" + productData ...

Python-内置类属性

Python内置类属性 __dict__ : 类的属性(包含一个字典,由类的数据属性组成) __doc__ :类的文档字符串 __name__: 类名 __module__: 类定义所在的模块(类的全 ...

input type=file

(1)首先来说一下,如何让 成为你想要的模样. 最简单的方法就是在让的透明度为0(完全透明),然 ...

quartz集群调度机制调研及源码分析---转载

quartz2.2.1集群调度机制调研及源码分析引言quartz集群架构调度器实例化调度过程触发器的获取触发trigger:Job执行过程:总结:附: 引言 quratz是目前最为成熟,使用最广泛的j ...

9、四大组件之四-Broadcast Receiver

课程目标: 了解Android消息机制 掌握Broadcast发送消息的两种类型 掌握BroadcastReceiver接收消息的编程 重点难点: sendOrderedBroadcast()的理解 ...

windows中path环境变量即时生效

修改PATH后,打来CMD命令行,输入 “set PATH=C” (不会真的改变PATH变量值,但会重新读取一次PATH值),关掉CMD窗口再打开.OK 不放心可以 echo %PATH% 检视一下.

用C写一个web服务器(四) CGI协议

* { margin: 0; padding: 0 } body { font: 13.34px helvetica, arial, freesans, clean, sans-serif; colo ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值