ARTS 08 - iOS Crash 分析攻略
前言:什么是ARTS?
ARTS 源于耗子叔在极客时间的专栏《左耳听风》打卡活动。
Algorithm:每周至少做一个 Leetcode 的算法题。主要是为了编程训练和学习。
Review:阅读并点评至少一篇英文技术文章。主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。
Tip:学习至少一个技术技巧。主要是为了总结和归纳你在日常工作中所遇到的知识点。
Share:分享一篇有观点和思考的技术文章。主要是为了建立你的影响力,能够输出价值观。
Algorithm
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
|
Python3 代码:
|
Review
本文主要从 Crash 日志渠道、Crash 捕获的原理、看懂 Crash 日志、Crash分析方法 等角度向大家普及下 Crash 原理及分析的思路。
其中讲到的知识点有:Mach异常、UNIX信号、常见 Crash 错误码、Mach-O、汇编等。
Crash 定位的过程是不断追溯 Crash 现场发生了什么的过程,通过对 Crash 日志的原理和内容的深入了解,可以帮助我们更快更好的定位应用崩溃问题。
然而现实中可能还是会有些疑难的 Crash 不易定位,是因为 Crash 日志其实也并未保存了 Crash 现场最全的信息,更进一步的优化就是丰富 Crash 日志的信息,让我们获取更多的 Crash 现场信息, 比如 KSCrash 这个框架在这块做了一些努力。这些开源项目的代码是值得学习的。
参考&引用&拓展阅读
总线错误: https://zh.wikipedia.org/wiki/%E6%80%BB%E7%BA%BF%E9%94%99%E8%AF%AF
书籍:《深入解析 Mach OS X & iOS 操作系统》
崩溃捕获系统的原理: https://junyixie.github.io/2019/09/28/CrashMonitorSystem/
分析iOS Crash文件: https://developer.aliyun.com/article/8854
iOS开发同学的arm64入门: https://blog.cnbluebox.com/blog/2017/07/24/arm64-start/
SIGSEGV 和 SIGBUS:...
剩余内容已隐藏