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

时间:2019-06-21 16:08:55

标签: macos clang dwarf

尽管尝试了LLDB not showing source code的建议,但我仍无法在lldb中看到源代码。

我将其简化为使用以下命令编译的简单C ++ 17程序。我正在使用从源代码编译的clang 7.0.1在OSX上运行,但是我的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进行编译,并使所有内容都“正常工作”,但事实并非如此。

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

1 个答案:

答案 0 :(得分:0)

我能够通过删除我不知道自己使用过的-flto链接器标志来解决此问题。显然,启用LTO后,调试符号将不起作用。