android - 在android中生成核心转储

标签 android debugging android-ndk coredump

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

有什么想法吗?

最佳答案

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

但是,正如我最近提出的一个问题所示:Running ndk-gdb with package not found error on motorola phone我仍然无法让它工作。

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

关于android - 在android中生成核心转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6186365/

相关文章:

c++ - cvCaptureFromCAM 中存在内存泄漏吗?

c++ - 为什么这个删除仍然导致运行时异常即使我在删除后将指针设置为NULL

android-ndk - 访问jni main.cpp中的运行场景(cocos2d-x)

java - Android 服务无法启动 - 在 list 中...但什么也没有?

java - 是否需要带有 Androids XMLSerializer 的 startDocument()?

android - 当我们在android应用程序中从服务器加载数据到页面时如何避免 "white screen in phonegap application"?

android - TimePickerDialog 中的 AM/PM DateFormat 替换

c# - 当前不会命中断点。尚未在 Silverlight 应用程序中为此文档加载任何符号

android - 错误 :org. gradle.internal.UncheckedException: 构建命令失败

java - Android NDK java.lang.UnsatisfiedLinkError 错误