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

发布于 11-16 18:31 字数 248 浏览 0 评论 0 原文

我正在系统库的美妙世界中编写一些东西,但我在 libc 中崩溃了,我的库显然传递了错误的值。

有什么方法可以让 Android 为崩溃的应用程序生成核心转储,以便我可以分解应用程序堆栈?

我特别指出,我正在导致 system_server 崩溃,如果有帮助的话。

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

I'M writing some stuff in the wonderful world of system libraries, and I'm getting crashes in libc, which my library is apparently passing bad values.

Is there any way that I can have Android generate a core dump for the crashing application so I can decompose the application stack?

Im particular, I'm causing system_server to crash, if that helps.

EDIT: The gist of my problem is this: When the application crashes within a library like libc, then the tombstone that gets output shows a stack trace within libc. If I had a full stack trace, then I could debug the entire application.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

洋洋洒洒 2024-11-23 18:31:55

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

logcat 跟踪保存在墓碑中,请参阅这篇文章: "="">http://crazydaks.com/debugging-in-android-with-tombstones.html。

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

I assume you're writing NDK (C/C++) code? If so, check your logcat output for a stack trace. If you have the corresponding debug so file, you can run it through a stack trace tool such as: http://code.google.com/p/android-ndk-stacktrace-analyzer/wiki/Usage.

The logcat traces are saved in Tombstones, see this post: http://crazydaks.com/debugging-in-android-with-tombstones.html.

For crashes within libc.so, you can try running arm-eabi-objdump and arm-eabi-addr2line against the so, and compare addresses to see where the crash occurred.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文