在android中生成核心转储

问题描述 投票:0回答:2

我正在使用一些共享的开发Android应用程序 我编写并使用 ndk-r5b 编译的库。该应用程序有效, y 和对库的调用也有效,但我检测到一些错误, 分段错误,我需要调试它,但是,我不知道如何调试 来自 android 的本机代码,我不知道是否可以生成核心转储, 就像在 Linux 中一样,用于调试我的库。

有什么想法吗?

android debugging android-ndk coredump
2个回答
5
投票

ndk 附带 ndk-gdb,据称它允许您调试本机应用程序。另外,如果你下载整个andriod开源项目,他们也有一些版本的gdb用于调试。查看 ndk 的 docs/ 文件夹以了解如何使用它。本教程也可能会有所帮助:http://vilimpoc.org/blog/2010/09/23/hello-gdbserver-a-debuggable-jni-example-for-android/

但是,正如我最近问的一个问题所示:在摩托罗拉手机上运行 ndk-gdb 时出现找不到包错误我仍然无法让它工作。

编辑:您在评论中说您使用的是三星设备:三星决定对本机调试所需的一些关键内部结构造成严重破坏,但如果您拥有设备的根访问权限,则很容易修复。如果您使用 --verbose 标志,您可能会发现错误与包未知错误不同。这是因为它正在查找 /data/system/packages.list,但三星将该文件重命名为 /dbdata/system/packages.list。因此,如果您在 /data/system/packages.list 中创建指向该文件的符号链接(需要 root 访问权限),它应该可以工作。或者至少 ndk 邮件列表是这样声明的:http://osdir.com/ml/android-ndk/2011-03/msg00036.html


0
投票

十二年过去了,我尝试构建和编辑aosp,我发现了

build/envsetup.sh
文件内容
coredump_*
功能.

aosp 崩溃会在

/cores
上生成核心文件(关于核心文件路径请尝试检查 envsetup.sh 代码)

我正在使用aosp_6.0.0_r1

© www.soinside.com 2019 - 2024. All rights reserved.