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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (243)

尽管尝试了LLDB没有显示源代码的建议,但我无法在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?

提问于
用户回答回答于

通过删除-flto我没意识到我戴上了链接器旗。显然,当启用LTO时,调试符号不起作用。

扫码关注云+社区

领取腾讯云代金券