5

我正在开发一个 android 应用程序并在项目中使用密集的 c++ 代码,首先我将 c++ 源代码放入项目中,并使用以下指南在 Android 应用程序中具有 Native Debugging 的 NDK 能力。

http://tools.android.com/recent/usingthendkplugin

但是在开发的弱点之后,我决定将 Native 代码分离到一个独立的项目中,并在 Android Application 中使用输出 SO 。

我的问题是如何调试作为 Android 应用程序中单独项目的结果的 SO 库?

4

1 回答 1

1

为此使用 nkd-gdb(您的 .so 必须包含在您为应用程序安装的 APK 中,位于应用程序特定 .so 文件的正常位置)它是 NDK 的一部分。请参阅 $NDK/docs/NDK-GDB.html

但是,请注意:nkd-gdb 只会在应用程序启动后的某个时间将 GDB 附加到您的 .so 中。因此,您可能会错过一些断点。在 IDE 插件之外,我知道解决该问题的两种方法:

  1. 在 .so 的最早入口点放置一个无限循环,然后在设置断点后使用 GDB 打破该无限循环
  2. 从https://android-review.googlesource.com/#/c/48029/下载我的待定更新到 ndk-gdb,它修复了这个问题 (有人报告我的修复有问题,所以它没有被批准AOSP 尚未...但我从未重现过他们的问题。如果您使用它,请告诉我,它是否适合您。)
于 2013-01-15T18:28:20.463 回答