Android - 使用lldb调试预置本机库
问题描述:
如何在使用最新的Android Studio工具时让lldb查看预置本机库的符号?Android - 使用lldb调试预置本机库
我正在使用Android Studio 2.2.2开发Android应用程序。我的应用程序有一个本地组件,也取决于我的本地组件链接到的预构建本机库。当我用调试器闯入一些本机代码时,调试器为我的本地代码提供了符号,但不是用符号构建的预建库。我在调试预构建本机库(https://developer.android.com/ndk/guides/prebuilts.html#dp)时发现的文档似乎已过时,因为它指的是Android.mk和ndk-gdb,而不是build.gradle,CMakeLists.txt和lldb,这是我正在使用。
对于熟悉lldb的人(这并不是说我熟悉它),这里有一些信息。我认为这反映了这样一个事实,即调试器正在查看我的本机代码的非符号剥离版本,该代码位于存储在我的机器上的libnative-lib.so中,但它正在查看预构建的符号剥离版本库,libaws-cpp-sdk-vitalservices.so,它存储在Android设备上:
(lldb) image list
...
[107] B8FC838B-0000-0000-0000-000000000000 /Users/christophersimmons/.lldb/module_cache/remote-android/.cache/B8FC838B-0000-0000-0000-000000000000/libaws-cpp-sdk-vitalservices.so
[108] A7AD2397-02E5-5AE9-0192-F2353B51C362-C40832C9 /Users/christophersimmons/Documents/repos/DoclilyAndroid/app/build/intermediates/cmake/debug/obj/x86/libnative-lib.so
答
您的可执行文件有多大?
看来,Android Studio的lldb客户端是32b应用程序,所以它无法处理大型文件!
https://issuetracker.google.com/issues/37324018
这似乎将尽快解决!
你想通了吗?我遇到了同样的问题。 –