【问题标题】:CLang libc, libc++ on Windows with debugging symbols compatible with Visual StudioWindows 上的 CLang libc、libc++,带有与 Visual Studio 兼容的调试符号
【发布时间】:2012-08-21 04:05:53
【问题描述】:

我正在尝试查找信息,但在 clang 网站上没有看到。 我正在考虑尝试在 Windows 上使用它,但我不知道它是否有自己的 libc 还是使用来自 MS 的损坏的 libc?

另一个问题:如果我用 clang 编译代码,我是否可以使用 Visual Studio 作为调试器,例如clang 能够发出 MS 格式的调试符号(这就是我不想使用 gcc 的原因;这是 intel 编译器可以做的,但它使用 MS 的 libc)。

简而言之,我希望能够将 Visual Studio 用作调试器,但同时我需要具有普通 lib c 的体面的真正 c 编译器。

或者,也许有商业替代品。我读过 dinkum 销售 Win32 和其他的商业 libc,但我不知道价格是多少以及如何获得它。

【问题讨论】:

    标签: visual-studio llvm clang libc


    【解决方案1】:

    你问了两个完全不同的问题。我将回答有关使用 Visual Studio 作为调试器的问题。

    目前这是不可能的。 Microsoft 尚未发布以 PDB 格式生成文件所需的任何文档或代码,这是 Visual Studio 所使用的。已经进行了一些逆向工程,但其结果尚未进入通用开源工具。

    GCC 和 Clang 都不能生成 PDB 文件,因此不能与 Microsoft 的调试器一起使用。一些商业编译器支持生成或使用 PDB,但不支持 GCC 和 Clang 等 Free/Open 编译器。

    您可以在 Windows 上使用其他支持 GCC 和 Clang 使用的 DWARF 调试格式的 IDE。此类编译器包括 Code::Blocks 和 Eclipse CDT。

    【讨论】:

    • 这就是我对 pdb 的了解。这些 IDE 中的任何一个在可用性方面是否与 Visual Studio 集成调试器相当?到目前为止,我什至无法使用任何东西。我需要工具,而不是玩具;)我尝试了代码块,这很好,但没有尝试将其作为调试器。如果它可以与 Visual Studio 调试器相媲美,我可能会在工作中使用它。
    • 根据我的经验,如果您喜欢图形集成,没有什么比 VS 调试器更好的了,但我一两年都没有尝试过。 Maye他们已经变得更好了。对它们进行测试,看看它们是否适合你,不会有什么坏处。
    • 我也有同样的经历。没有什么比这更接近了。我也有一段时间没有尝试过其他工具,但很难想象所有 linux 开发人员都没有类似的高效工具(valgrind 是最大的例外)
    • Linux 开发人员仍然认为 Vim/Emacs 是代码操作工具的巅峰之作。有些人仍然完全反对这样的想法,即一个好的工具可以做的不仅仅是移动文本,或者它试图真正理解文本所代表的程序的含义和结构。你不应该感到惊讶。 (我多年来一直是 Linux/Vim 的死忠用户,在了解我的方法错误之前,我曾经属于这类人。)围绕 Clang 最终做出了一些努力来改善这种情况,但真正的 VS 杀手仍然是多年以后。
    • 您关于 PDB 的 cmets 并不完全正确。方法是让 Clang 使用 CV8 调试信息数据填充对象,然后使用 Microsoft 的链接器链接二进制文件并将 CV8 数据写入 PDB 文件。如果使用MS的link.exe链接,则无需直接支持PDB。 CodeView (CV8) 实际上是众所周知的,尽管微软对格式做了一些小的调整。我知道一个项目具有全面的 CodeView 调试输出;那就是DMD(参考D编译器,可以输出MSVC兼容的对象)。该代码可能会被 Clang 使用。
    猜你喜欢
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 2015-01-13
    • 1970-01-01
    相关资源
    最近更新 更多