android - Crashlytics 报告垃圾收集器内部的 Android 应用程序崩溃
问题描述
在我们的 Crashlytics 数据中,我们看到了大量来自旧设备的报告,如下所示。当系统开始清理内存时,我们的应用程序似乎崩溃了。
该应用程序确实包含malloc()
堆中的本机代码。手动审核每一行是不可行的。我们无法访问所有源代码,而且代码库很大。
目前,我们还没有已知的方法可以“在实验室”重现这种情况。我们只有这些神秘的痕迹。
...
# OS Version: 5.0
# Device: Galaxy Note3
# RAM Free: 4.2%
# Disk Free: 34.8%
#0. Crashed: .our.app.id|
0 libart.so 0xb4d24180 (Missing)
1 libart.so 0xb4d244b7 art::gc::collector::MarkSweep::ProcessMarkStack(bool)
2 libart.so 0xb4d2454d art::gc::collector::MarkSweep::MarkReachableObjects()
3 libart.so 0xb4d25491 art::gc::collector::MarkSweep::MarkingPhase()
4 libart.so 0xb4d255bf art::gc::collector::MarkSweep::RunPhases()
5 libart.so 0xb4d1ca87 art::gc::collector::GarbageCollector::Run(art::gc::GcCause, bool)
6 libart.so 0xb4d3c43b art::gc::Heap::CollectGarbageInternal(art::gc::collector::GcType, art::gc::GcCause, bool)
7 libart.so 0xb4d3d881 art::gc::Heap::ConcurrentGC(art::Thread*)
8 boot.oat 0x745b23db (Missing)
我正在寻找有关如何处理/调试此崩溃的提示。是什么导致了这个痕迹?我可以采取哪些步骤在本地重现它?是什么让垃圾收集器不开心?
解决方案
推荐阅读
- php - Symfony Twig 错误提示:未定义索引
- c++ - Qt - QLineEdit 不更新页面和 URL
- sql - 是否定义了 SQL SELECT 中的“OR”子句的结果?
- logstash - 如何在 Kibana/Logstash 中对日志进行分组?
- python-3.x - 使用 selenium 和代理获取请求正文
- ios - 使用 iOS 图表在自定义标记视图上点击手势
- c - 我可以在图表的边缘插入数据吗?
- kubernetes - Kubernetes CNI 与 Kube-proxy
- php - 如何每批读取文件 .csv
- php - 如何判断 CakePHP 3.x 中的调试模式是否开启