如何从Android应用程序调试共享库[单独的项目]

Yam*_*our 5 eclipse debugging android android-ndk

我正在开发一个Android应用程序并在项目中使用密集的c ++代码,首先,我将c ++源代码放在项目中,并使用以下指南在Android应用程序中具有本机调试的NDK功能.

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

但是在开发的弱点之后,我决定在独立项目中分离Native代码并使用Android应用程序中的输出SO.

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

Rya*_*ell 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 尚未...但我从未重现过他们的问题。请告诉我您是否使用它,以及它是否适合您。)