AOSP lldbclient.py生成的lldb配置sourceMap中“/b/f/w”含义是什么?
/b/f/w 路径含义及断点问题解答 /b/f/w 是Google内部AOSP持续集成构建集群的默认工作目录前缀,所有Google官方构建的AOSP二进制镜像的调试符号中,记录的源代码根路径均为/b/f/w。
lldbclient.py默认加入该sourceMap条目,初衷是为了适配官方镜像的调试场景:可以自动把符号里的/b/f/w前缀替换为你本地的AOSP源码根路径,匹配到本地源码。
断点失败的原因
CodeLLDB的sourceMap是双向映射规则:
- 正向:将调试符号中记录的源码路径前缀,替换为本地实际源码路径
- 反向:将你本地IDE中打开的源码路径,反向替换为符号中记录的路径后再发送给LLDB执行断点设置命令
你使用的是自己本地编译的AOSP镜像,编译产出的二进制调试符号里记录的源码根路径就是你本地的/mnt/data/zl/aosp_project,不存在/b/f/w前缀的路径记录。此时反向映射会把你本地的正确路径拼接上不存在的/b/f/w前缀,发送给LLDB的断点命令自然找不到对应文件,导致设置失败。
解决方案
你当前直接移除"/b/f/w": "/mnt/data/zl/aosp_project"这条映射的处理是完全正确的:
- 本地自行编译的AOSP镜像调试不需要保留该规则
- 只有当你调试Google官方发布的正式镜像时,才需要保留该映射完成官方符号路径到本地源码的匹配
内容的提问来源于stack exchange,提问作者robot
相关产品推荐
相关产品推荐

