文档章节

手动解析CrashLog

asjoker
 asjoker
发布于 2016/08/05 10:01
字数 293
阅读 8
收藏 1

根据 原文 总结

Your                              0x000f0846 0xa2000 + 321606

应用崩溃发生在运行时地址0x000f0846,该进程的运行时起始地址是0xa2000,崩溃处距离进程起始地址的偏移量为十进制的321606(对应十六进制为0x4E846)。三者对应关系

0x000f0846 = 0xa2000 + 0x4E846

崩溃堆栈中的起始地址和崩溃地址均为运行时地址,根据虚拟内存偏移量不变原理,只要提供了符号表TEXT段的起始地址,再加上偏移量(这里为0x4E846)就能得到符号表中的堆栈地址,即:

符号表堆栈地址 = 符号表起始地址 + 偏移量

atos提供了另外一种无需计算崩溃地址对应的符号表地址的方式,命令格式如下:

$atos -o Your.app.dSYM/Contents/Resources/DWARF/Your -arch armv7 -l 0xa2000 0x000f0846

其中-l选项指定了二进制文件在运行时的起始地址0xa2000(获取方式见Binary Images相关内容),后面跟的是崩溃发生的运行时地址0x000f0846,解析结果和使用计算得到的符号表中崩溃地址一致:

-[OBDFirstConnectViewController showOilPricePickerView] (in Your) (OBDFirstConnectViewController.m:882)

© 著作权归作者所有

共有 人打赏支持
asjoker
粉丝 10
博文 108
码字总数 79411
作品 0
东城
程序员
手动解析CrashLog之——原理篇

接下来再说说dwarfdump、atos等解析工具是如何从符号表文件中获取到崩溃位置信息的。一切还得从.dSYM符号表文件开始说起。 一、.dSYM文件的生成 符号表文件.dSYM实际上是从Mach-O文件中抽取调...

HeroHY
02/27
0
0
第一个IOS APP后续(审核,上架)

上一篇《第一个IOS APP总结 》我觉得预留2个星期审核上架应该够了,实际上用了1个星期,提交第5次版本审核过,相当于修改了4次,纪录一下避免下次再犯错。 1.0.1版是第一个版本:拒绝! 说是...

bluehook
05/10
0
0
【Android】简单的日志工具

Android Log 地址 : https://github.com/xesam/AndroidLogTools 现在包含两个类: 打印日志 崩溃记录 使用方式 打印日志 L 对 android.util.Log 的简单封装,支持 d(Object... content) 的调...

xesam
2015/10/20
74
0
【转】Xcode分析CrashLog的方法

使用dwarfdump检查dSYM和app是否匹配 原文地址:http://www.acwind.net/blog/?p=1090 Bug是永远伴随着程序员们的东西,各种各样的情况造成程序crash掉也是家常便饭。Windows下的很多大型软件...

长平狐
2012/08/13
776
0
资源分享

分享链接 iOS开发系列--音频播放、录音、视频播放、拍照、视频录制的详细说明,包括框架等: http://www.cnblogs.com/kenshincui/p/4186022.html - autoid-0-0-0 求职大课堂之面试篇丨如何回...

卡奇匠
2016/07/26
35
0

没有更多内容

加载失败,请刷新页面

加载更多

设计模式之 明确责任 观察者模式 状态模式 责任链模式

观察者模式是任务分发的一种模式。 如果认为我们设计的系统的各个模块(或子系统)的最终目的是完成共同任务,那么这个任务如何分配到多个模块的就是我们遇到的第一个问题。简单设计场合我们...

backbye
14分钟前
2
0
14-利用思维导图梳理JavaSE-大汇总

14-利用思维导图梳理JavaSE-Java基础知识大汇总 主要内容 1.对象入门 2.一切都是对象 3.程序流程控制 4.初始化和消除 5.权限访问控制 6.复用类 7.多态 8.接口与抽象类 9.内部类 10.容器 11.异...

飞鱼说编程
50分钟前
5
0
利用Lombok编写优雅的spring依赖注入代码,去掉繁人的@Autowired

大家平时使用spring依赖注入,都是怎么写的? @Servicepublic class OrderService { @Autowired private UserService userService;} 是不是很熟悉的感觉?但是呢 如果你用...

HeyS1
57分钟前
25
0
IBATIS 写BLOB字段遇到的问题

1、 首先遇到的配置问题,通过设置typeHandler 来支持写入。接下来由此引出了事务的问题。 <typeHandler jdbcType="BLOB" javaType="[B" callback="org.springframework.orm.ibatis.support....

echo-neo
今天
1
0
37. Sudoku Solver

Description tags: backtrack,hash table difficulty: hard Write a program to solve a Sudoku puzzle by filling the empty cells.A sudoku solution must satisfy all of the following......

52iSilence7
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部