【问题标题】:visual studio dump file and pdb fileVisual Studio 转储文件和 pdb 文件
【发布时间】:2015-12-17 02:01:40
【问题描述】:

Visual Studio 需要一个版本匹配的 pdb 文件来调试转储文件。感觉这样很不方便,每次发布二进制文件都需要记得把pdb文件复制到另一个文件夹。如果我忘记了这样做,那么如果应用程序崩溃,我将无法调试转储文件。因为在发布二进制文件和应用程序崩溃的时候,我会继续写代码和构建,pdb文件会刷新。

与 gcc 不同,当核心转储生成时,我可以在没有任何东西的情况下调试转储文件(使用 -debug 构建应用程序)。但是对于vs来说,如果没有版本匹配的pdb和源代码,转储文件就没有意义了。

有什么好办法解决这个问题吗?

【问题讨论】:

    标签: visual-studio debugging


    【解决方案1】:

    解决方案是在每次构建后uploading the PDBs to a symbol server 并将VS 调试选项指向符号服务器。 VS 或 Windbg 等其他调试器按需获取正确的符号。

    【讨论】:

    • 保留每个版本的 PDB 文件太大。我项目的 PDB 文件大于 100MB。 MSDN 说使用 /Z7 可以让编译器将调试信息写入 obj 文件,这样行吗?
    • 我从未使用过该选项。试一试,告诉我们结果
    • @jean - (1) 将信息从 pdb 推送到 obj 将通过所有用户复制它,而不会减小大小;它只会增加您的尺寸问题。 (2) pdb 文件可很好地压缩(根据快速测试,可压缩 5 到 7 倍)。 (3) 你的软件有多少个版本?这些是您在进行故障转储调试时需要保留的唯一 pdb。
    • @Vlad Feinstein 但是我不知道哪个版本的exe会提前崩溃。我将发布几个版本给其他部门,例如 QA。
    • "当链接器生成 .dll、可执行文件和 PDB 文件时,它会在每个文件中存储相同的 GUID。工具使用 GUID 来确定给定的 PDB 文件是否与 DLL 或可执行文件匹配。” msdn.microsoft.com/en-us/library/windows/desktop/… 符号服务器和 Windbg/VS 将完成您获取正确文件所需的一切
    猜你喜欢
    • 2012-06-25
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多