【问题标题】:How do you generate new PDB files every build in Visual Studio 2013?如何在 Visual Studio 2013 中每次构建时生成新的 PDB 文件?
【发布时间】:2015-01-18 23:56:20
【问题描述】:

问题:

开发人员希望在每次构建开始时创建新的程序数据库文件 (PDB)。

适用于什么场景:

C++ 热插拔、动态调试、DLL 代码插件供主程序执行代码。

【问题讨论】:

  • '/ZI' ,而不是 '/Zi' 选项用于编辑和继续

标签: c++ visual-studio visual-c++ visual-studio-2013 project-properties


【解决方案1】:

解决方案:

  1. 打开您的代码项目。
  2. 打开项目属性
  3. 在左侧窗格中,展开 Configuration Properties 节点。
  4. 展开链接器节点。
  5. 点击调试节点。
  6. 在右侧窗格中,找到 Generate Program Database File 条目。
  7. 将值替换如下:

    $(OutDir)$(TargetName)-$([System.DateTime]::Now.ToString("HH_mm_ss_fff")).pdb

  8. 点击应用,然后点击Ok

启动 C++ 热交换(动态调试)模式:

  1. 将两个项目添加到 Visual Studio 2013 中的新解决方案中。
  2. 使其中一个项目在构建时生成 DLL。
  3. 创建您的程序。
  4. 对于 DLL,编写一个在程序运行时不断调用的函数。将函数导出到 DLL。
  5. 将 DLL 项目设置为为每个构建生成新的 PDB 文件。
  6. 编译并构建所有项目。
  7. 在不调试的情况下启动您的程序 (CTRL+F5)。
  8. 更新导出的 DLL 函数。
  9. 构建 DLL 项目一次。 (CTRL+SHIFT+B)。
  10. 您的程序应在第二次构建后立即更新函数的执行。

HTML5 version of the GIF here.

注意:

  • 您可以在项目属性中添加以下值,以消除过多的 PDB 文件。这可以添加到 Build Events 节点中的 Pre-Build Event 条目中。

    del "$(OutDir)*.pdb"

【讨论】:

  • 这适用于VS2010吗?例如,他们在我的商店购买了 VS2010,并且只有在有充分理由的情况下才会升级到 VS2013(由于运行认证测试和支付许可证费用)。
  • 我相信是的。不需要特定的代码标准化更改。这一切都在项目属性中完成,您只需将不断更新的函数导出到 DLL,并让您的程序加载该 DLL。我唯一担心的是项目属性中使用的宏。 MSDN 文档中从未正式记录这些宏。
  • @PrashantPimpale 这个设置应该可以工作到 VS 2019,因为它只是 Visual Studio 特定的配置,而不是真正的编程语言的东西。
猜你喜欢
  • 2015-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-21
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多