【发布时间】:2021-12-29 21:38:04
【问题描述】:
aosp有一个python脚本lldbclient.py,可以启动lldb服务器,创建codelldb扩展支持的vscode启动配置设置。
这个生成的配置是这样的:
{
"name": "(lldbclient.py) Attach surfaceflinger (port: 5039)",
"type": "lldb",
"request": "custom",
"relativePathBase": "/mnt/data/zl/aosp_project",
"sourceMap": {
"/b/f/w": "/mnt/data/zl/aosp_project",
"": "/mnt/data/zl/aosp_project",
".": "/mnt/data/zl/aosp_project"
},
"initCommands": [
"settings append target.exec-search-paths /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/system/lib64/ /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/system/lib64/hw /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/system/lib64/ssl/engines /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/system/lib64/drm /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/system/lib64/egl /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/system/lib64/soundfx /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/vendor/lib64/ /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/vendor/lib64/hw /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/vendor/lib64/egl /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/apex/com.android.runtime/bin"
],
"targetCreateCommands": [
"target create /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/system/bin/surfaceflinger",
"target modules search-paths add / /mnt/data/zl/aosp_project/out/target/product/emulator_x86_64/symbols/"
],
"processCreateCommands": [
"gdb-remote 5039"
],
},
sourceMap部分中的“/b/f/w”是什么意思?
我发现这个sourceMap项导致vscode codelldb设置断点失败。这是因为当我使用 SurfaceFlinger.cpp 等文件在第 1000 行设置断点时,codelldb 将向 lldb 发送命令“b /b/f/w/framework/native/services/surfaceflinger/SurfaceFlinger.cpp:1000”, lldb 找不到这个文件,所以失败了。
目前我只是删除 sourceMap 部分中的 "/b/f/w": "/mnt/data/zl/aosp_project" 来解决这个问题。
我在 lldb 文档中找不到有关“/b/f/w”的任何信息。
【问题讨论】:
标签: visual-studio-code android-source lldb codelldb