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

4

尽管我已经尝试了LLDB not showing source code的建议,但我仍然无法在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编译调试信息就可以"轻松搞定",但显然情况并非如此。请问如何让调试符号生效,以便使用lldb?
1个回答

4

我成功解决了这个问题,方法是删除我之前不知道存在的 -flto 链接器标志。显然,启用 LTO 后,调试符号就无法使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接