【问题标题】:Native debugging of external stripped shared library in Android StudioAndroid Studio中外部剥离共享库的原生调试
【发布时间】:2016-09-14 02:12:53
【问题描述】:

我已剥离和未剥离共享库。 使用 LLDB 在 Android Studio 中进行调试时如何加载符号?

我可以成功调试位于“jniLibs”文件夹中的完整未剥离的 .so。 但它太大了,部署时间也太长了。

在调试配置中指定符号目录不适用于标准和实验插件。

【问题讨论】:

    标签: c++ debugging android-studio java-native-interface


    【解决方案1】:

    您需要使用“--build-id”标志链接您的库,以便 Android Studio 中的 LLDB 可以找到它,而不是从设备中提取它。如果您使用 NDK 工具链,只需将以下内容添加到您的链接器标志中:

    '-Wl,--build-id'
    

    您可能还需要告诉 Android Studio 在哪里寻找未剥离的库(如果您自己剥离了这些库)。你可以通过运行->编辑配置->调试器选项卡->符号目录并添加你的路径来做到这一点。

    要检查哪个库是 LLDB,您可以暂停应用,然后转到 Native Debugger 选项卡 -> LLDB 控制台并输入:

    image list
    

    如果您使用 ndk-build,只需将标志添加到 Android.mk 中的 LOCAL_LDFLAGS 或仅使用 NDK r12b 或更高版本(默认情况下启用该标志)。

    【讨论】:

    • 在 Android Studio 2.2.3 中运行良好,无需添加符号目录,谢谢
    猜你喜欢
    • 2011-01-06
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    相关资源
    最近更新 更多