iOS crash 追终 ,iOS 如何定位crash 位置

https://developer.apple.com/library/ios/technotes/tn2151/\_index.html

荒唐分析是根据设备受到之crash log 与
编译文件时别的dsYM文件相结合得出的结果,crash log 中含有应用的 crash
trace
stack,dsym中寓应用之符号表信息,符号表信息用于匹配程序中的公文,函数,代码,行号。

一、可用crash trace 追踪的crash

仲、low memery 是追踪不至之以从没对应以下的即列的号

1)EXC_BAD_ACCESS

SIGSEGV:
通常由还释放对象造成,这种类型在切换了ARC以后当都坏少看了。

SIGABRT:
 收到Abort信号退出,通常Foundation库中的器皿为了保障状态正常会做片检测,例如插入nil到数组中等会遇见此类错误。
SEGV:(Segmentation
 Violation),代表无效内存地址,比如空指针,未初始化指针,栈溢出相当;

SIGBUS:总线错误,与 SIGSEGV 不同之是,SIGSEGV 访问的凡行不通地址,而
SIGBUS 访问的是行得通地址,但总线访问十分(如地址指向共同问题)

SIGILL:尝试实行非法的授命,可能不给辨认或没有权限
2)EXC_BAD_INSTRUCTION

3)EXC_ARITHMETIC

毫不第三着工具,如何剖析?

首先,确保于release(Ad Hoc或者App
Store)一个本子时,保存了相应的xxx.app和xxx.dSYM文件。
副,验证xxx.crash、xxx.app和xxx.dSYM三者的uuid是否相同。
证实方式:
1)xxx.app。dwarfdump –uuid mobileguard.app/mobileguard
2)xxx.dSYM。dwarfdump –uuid
mobileguard.app.dSYM/Contents/Resources/DWARF/mobileguard
3)xxx.crash。
包三者uuid一致后,用symbolicatecrash工具生成易读之日记信息。

先期准备条件:
1)链接symbollicatecrash到/usr/bin/中,就足以直接以sybollicatecrash命令。ln
-s
/Applications/Xcode.app/Contents/SharedFrameworks/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

理所当然是发生 分析工具得以据此之:

Crashlystics
(twitter,使用机关集成工具,通过达成传dsym文件形式,强烈推荐使用,简单,好用,定位问题快,准)

Bugly (腾讯,用相应的jar 将dsym分析后达到传至腾讯服务器)

MoClick (友盟,需下充斥crash log 并为此相应的家伙解析)

Hockeyapp (微软,需达到传dsym文件,收费,有机动集成工具)

 

相关文章