小编She*_*ikh的帖子

在 Android Studio 中调试时如何设置 LLDB 源映射?

我正在尝试在Android Studio 2.3 Canary 2 中使用本机调试;Gradle 插件是“ gradle:2.3.0-alpha2 ”。我从https://github.com/googlesamples/android-ndk 获取了“hello-libs”样本。此示例使用 CMake 作为外部本机构建系统。好的,/hello-libs/distribution/ 中有预构建的库(libgmath.a 和 libgperf.so)。库包含调试信息,它们不会被剥离。我尝试使用命令将 lldb 调试器指向我的 PC 上的源代码来本地调试这些预构建的库:

settings set target.source-map
Run Code Online (Sandbox Code Playgroud)

所以,我用

objdump -Wl 
Run Code Online (Sandbox Code Playgroud)

获取用于构建这些库的源文件的路径。Objdump 给了我下一个目录:

  1. /Users/gfan/proj/android-mk/work-branch/hello-libs/gen-libs/src/main/cpp/gperf/src
  2. /Users/gfan/proj/android-mk/work-branch/hello-libs/gen-libs/src/main/cpp/gmath/src

好的,在调试配置中,我在“LLDB 启动命令”中添加了两个命令

  1. 设置设置 target.source-map /Users/gfan/proj/android-mk/work-branch/hello-libs/gen-libs/src/main/cpp/gperf/src e:\WORKSPACE\hello-libs\gen- libs\src\main\cpp\gperf\src\
  2. 设置设置 target.source-map /Users/gfan/proj/android-mk/work-branch/hello-libs/gen-libs/src/main/cpp/gmath/src e:\WORKSPACE\hello-libs\gen- libs\src\main\cpp\gmath\src\

在选项卡“符号目录”中,我设置了在以下位置搜索调试符号的路径:

  1. E:\WORKSPACE\hello-libs\app.externalNativeBuild\cmake\debug\armeabi-v7a\CMakeFiles\hello-libs.dir
  2. E:\WORKSPACE\hello-libs\app\build\intermediates\cmake\debug\obj\armeabi-v7a
  3. E:\WORKSPACE\hello-libs\distribution\gmath\lib\armeabi-v7a
  4. E:\WORKSPACE\hello-libs\distribution\gperf\lib\armeabi-v7a

我在 ndk.abiFilters 中只使用了“ armeabi-v7a ”。

Android Studio 中的所有调试配置对我来说真的不是很明显。所以,我的问题是:

  • 如何正确设置lldb 源映射以在本地机器上调试带有源的预构建库?
  • 顺便说一句,谁知道如何在调试配置中使用“主机工作目录:”?在https://developer.android.com/studio/run/rundebugconfig.html上只有一行关于它,听起来“指定 LLDB 工作目录”。我应该如何指定它?

android android-ndk lldb android-studio

5
推荐指数
0
解决办法
1271
查看次数

具有 swift 包依赖性的模拟器构建错误。“无法打开路径:.framework 处的文件的文件句柄”

我制作了一个简单的空白项目并通过swift-package-manager添加了Bugsee

它位于https://github.com/bugsee/spm

我可以成功为 iOS 设备构建项目。

但对于模拟器来说却失败了。而且错误并不是很详细(路径被缩短):

Cannot open file handle for file at path: Path(str: ".../Bugsee.xcframework/ios-arm64_i386_x86_64-simulator/Bugsee.framework")
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

路径有效并且框架存在: 在此输入图像描述

我还发现,在将 Bugsee.xcframework 添加到Frameworks、Libraries 和 Embedded Content中后,模拟器的构建就可以了。 在此输入图像描述

有谁知道出了什么问题吗?

xcode swift-package-manager xcframework

5
推荐指数
1
解决办法
733
查看次数