如何保持加载的符号不会改变

时间:2011-12-27 15:46:12

标签: c++ debug-symbols visual-studio-debugging

我正在尝试加快插件的调试迭代。主机应用程序非常庞大,操作系统和主应用程序中有大约一百个符号。只有一个.dll和一个.pdb发生了变化,但似乎必须按需从磁盘重新加载每个符号。在我达到断点之前的发布时间差不多是五分钟。在发布中运行应该在一分钟之内。

我已经尝试过的事情:

  • 删除其他未使用的.dll :帮助但无法预测的结果
  • 编辑并继续:这在过去很有效。它在此版本的主机应用程序中不起作用。这可能是由于部分产品的某些.net c ++ / cli包装器(与我正在使用的部分无关)
  • 不使用符号: 60%的案例都不是很好的调试体验。
  • 让程序保持运行,只需卸载我的.dll:不支持,因为依赖项无法预测。

有关加快工作流程的建议吗?

规格:

  • 操作系统:Windows 7 64位
  • IDE / Debugger: visual studio 2010 sp1
  • 语言: c ++
  • crt版本:有时 v90 ,有时 v100 ,具体取决于主机应用的版本。
  • 使用ms符号服务器:
  • 编辑并继续:已损坏
  • 申请启动时间 4-5分钟
  • 模块窗口中的总计数: 589!

2 个答案:

答案 0 :(得分:0)

使用Ramdisk并在其上存储频繁访问的符号。

答案 1 :(得分:0)

您可以尝试其他一些事情

  1. 声明一个名为_NO_DEBUG_HEAP=1的环境变量。执行大量堆分配的Very useful for a large application
  2. 默认情况下避免加载MS符号。你只需要偶尔使用它,在这种情况下,我只需要在callstack窗口中使用鼠标右键,然后选择从 - 加载符号>符号路径或Microsoft符号服务器
  3. 看看您是否可以升级到SSD硬盘。