记一次 Android Native 层的 Debug 过程
记录这次 Debug 的原因主要是在 debug 过程中用到了之前写的另一篇贴文 所描述的一些做法,并且整个过程也比较曲折,其中的一些现象及其背后的原因也比较罕见。
先给个简单的 Takeaway:如果发生了段错误但 Logcat 中没有打印堆栈,可以考虑一下“人为捕获了 SIGSEGV 信号,但挂接的处理函数出错崩溃”这种情况。
问题现象 当时是在协助开发某 Android 底层框架 A 的新版本。在某次合入新代码后进行测试,发现其上层 App 在运行时会发生“必现但时间及场景不定”的崩溃。比较奇怪的是,Logcat 中完全没有打印 App 崩溃时的错误类型或堆栈信息。
原因定位 后面在 Logcat 中找到的一些边缘信息指出,崩 …