OSX 上没有带 LLDB 的调试信息/源代码

No debug info / source code with LLDB on OSX

尽管尝试了

的建议,但我无法在 lldb 中看到源代码

我已将其归结为一个简单的 C++17 程序,该程序使用以下命令编译。我在 OSX 上 运行,使用我自己从源代码编译的 clang 7.0.1,但我的 lldb 是 XCode 安装的(这可能是个问题?)。

这是我的编译命令:

clang++ -std=c++17 -march=native -Wall -g -O0  main.cpp -o main

请注意,main/main。dSYM/Contents/Resources/DWARF 是在我编译时创建的,看起来没问题。

不过,一个明显的问题是调试信息不​​在二进制文件中,根本找不到目标文件:

$ dsymutil main
warning: (x86_64) /var/folders/c1/vxvr6h9x10b8dbsxhh6nx05h0000gn/T/main-43ca25.o unable to open object file: No such file or directory
warning: no debug symbols in executable (-arch x86_64)

我的印象是我可以只使用调试信息(通过 -g)进行编译并拥有一切 "just work" 但事实显然不是这样。

如何让调试符号起作用以便我可以使用 lldb?

我能够通过删除我没有意识到的 -flto 链接器标志来解决这个问题。显然,启用LTO后,调试符号不起作用。