尽管尝试了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?
答案 0 :(得分:0)
我能够通过删除我不知道自己使用过的-flto
链接器标志来解决此问题。显然,启用LTO后,调试符号将不起作用。