有两种可能的方式会失败。
(1) lldb 根本找不到调试信息。
(2) lldb 可以找到调试信息但找不到实际的源文件。
您可以通过查看应该具有调试信息的代码的回溯来区分这些情况。如果 lldb 在回溯中没有显示行号,那么您属于第一种情况。如果您看到行号但没有来源,则属于后一种情况。
按顺序排列这些:
1)查找调试信息:
看起来您的构建行正在指示 bazel 生成 dSYM,这应该允许您调试二进制文件。
命令:
(lldb) 图像列表
如果 lldb 找到它,将列出二进制文件和 dSYM。检查 lldb 是否找到了您的 dSYM。
如果没有自动找到 dSYM,您可以在文件系统中找到它,然后执行以下操作:
(lldb) 添加-dsym
让 lldb 手动读取它。如果这可行,但您仍然看不到源信息,那么 dSYM 一定是构建不正确,并且没有它应该拥有的所有信息。您可能需要咨询一些边框专家来解决这个问题......
您可以在此处查看有关如何在 macOS 上处理调试符号的更多详细信息:
http://lldb.llvm.org/symbols.html
2)源信息但没有源文件:
如果 lldb 看到调试信息但没有看到源,那么您将需要使用该source-map
设置来告诉 lldb 它们在哪里。例如,在此答案中对此进行了描述:
在 Xcode 中将源附加到二进制 dylib