在Android Studio中对外部剥离的共享库进行本机调试

Ale*_*xGu 4 c++ debugging java-native-interface android-studio

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

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

在Debug配置中指定symbols目录不适用于standart和experemental插件.

Aki*_*ule 6

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

'-Wl,--build-id'
Run Code Online (Sandbox Code Playgroud)

您可能还需要告诉Android Studio在哪里查找未提取的库(如果您自己剥离了库).您可以通过转到Run-> Edit Configurations-> Debugger Tab-> Symbols Directories并添加路径来完成此操作.

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

image list
Run Code Online (Sandbox Code Playgroud)

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