如何让android打印掉崩溃系统应用程序的核心转储?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让android打印掉崩溃系统应用程序的核心转储?相关的知识,希望对你有一定的参考价值。

我在系统库的精彩世界中写了一些东西,我在libc中崩溃,我的库显然传递了错误的值。

有什么方法可以让android为崩溃的应用程序生成核心转储,这样我就可以分解应用程序堆栈了吗?

我特别是,如果有帮助,我会导致system_server崩溃。

编辑:我的问题的要点是:当应用程序在像libc这样的库中崩溃时,获取输出的逻辑删除显示libc中的堆栈跟踪。如果我有一个完整的堆栈跟踪,那么我可以调试整个应用程序。

答案

我假设您正在编写NDK(C / C ++)代码?如果是这样,请检查logcat输出以查找堆栈跟踪。如果您有相应的debug so文件,则可以通过堆栈跟踪工具运行它,例如:http://code.google.com/p/android-ndk-stacktrace-analyzer/wiki/Usage

logcat跟踪保存在Tombstones中,请参阅以下文章:http://crazydaks.com/debugging-in-android-with-tombstones.html

对于libc.so中的崩溃,您可以尝试针对这种情况运行arm-eabi-objdump和arm-eabi-addr2line,并比较地址以查看崩溃发生的位置。

以上是关于如何让android打印掉崩溃系统应用程序的核心转储?的主要内容,如果未能解决你的问题,请参考以下文章

coredump时如何过滤掉共享内存

[转]window下使用SetUnhandledExceptionFilter捕获让程序的崩溃

RSA加密如何让字符串NSString如何转成SecKeyRef?

核心转储注释部分

c_cpp 我认为只要lcd被注释掉并且它没有连接到打印机,这不会崩溃......?!?

如何获得Android的崩溃日志