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

时间:2013-01-15 16:01:09

标签: android eclipse debugging android-ndk

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

  1. 在.so的最早入口点放置一个无限循环,然后在设置断点后使用GDB突破无限循环
  2. 将我的待处理更新下载到ndk-gdb,修复此问题,来自https://android-review.googlesource.com/#/c/48029/(有人报告我的修复程序有问题,所以它还没有获得AOSP批准......但我从未复制过他们的问题。如果您使用它,请告诉我,以及它是否适合您。)