【发布时间】:2017-12-17 19:56:05
【问题描述】:
这里说明clang现在知道如何生成.pdb文件(http://blog.llvm.org/2017/08/llvm-on-windows-now-supports-pdb-debug.html)。
据我了解,至少现在预计使用 Microsoft 链接器的 clang 会生成与 msvc 工具链生成的文件等效的 .pdb 文件。
这里解释了如何使用主流 Visual Studio 2017 调试“外部”二进制文件,即不是使用项目/解决方案 (https://docs.microsoft.com/en-us/visualstudio/debugger/how-to-debug-an-executable-not-part-of-a-visual-studio-solution) 构建的二进制文件。
我用clang -g main.c -o main.exe 编译了一个简单的hello world 应用程序,它按预期生成了一个.pdb 文件。
但是,当我尝试进入它时,Visual Studio 抱怨 .pdb 文件不包含行号信息。
相比之下,使用cl /EHsc /Zi main.c 编译可以正常使用Visual Studio 进行调试。
我目前正在尝试了解 clang 生态系统是否已经足以在 Windows 上进行开发,如果有人可以解释,我将不胜感激:
- stable clang 和 msvc 生成的 .pdb 文件有什么区别?
-
link和lld在这方面有什么区别吗? - clang 6.0 会发生变化吗?
【问题讨论】:
-
也许你应该运行
clang-cl.exe? -
愚蠢的问题:如果您已经在 Windows 上并且可以访问 Visual Studio,为什么不直接使用 Visual Studio?
标签: c++ windows visual-studio clang pdb