【问题标题】:how to debug a shared libarary [ separate project] from android application如何从android应用程序调试共享库[单独项目]
【发布时间】:2023-03-21 03:42:01
【问题描述】:

我正在开发一个 android 应用程序并在项目中使用密集的 c++ 代码, 首先我把c++源码放到项目中,使用下面的教程,在Android应用中拥有Native Debugging的NDK能力。

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

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

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

【问题讨论】:

    标签: android eclipse debugging android-ndk


    【解决方案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 批准......但我从未重现他们的问题. 请让我知道您是否使用它,以及它是否适合您。)

    【讨论】:

    • 我在回答你大胆的问题,“我的问题是如何调试一个 SO 库,它是 Android 应用程序中一个单独项目的结果”我上面的建议是直接使用 ndk-gdb。对不起,我对NDK插件不熟悉。
    猜你喜欢
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多