2010-09-18 45 views
5

我正在使用Visual Studio 2008.我不需要在我的项目中调试某些DLL,因此在调试Visual C++程序时可以禁用符号加载吗?调试时有助于缩短启动时间吗?如何在调试Visual C++程序时禁用符号加载?

这些符号都是本地的,所以我没有那些缓慢加载的问题,只是想更快更快地进行调试。

例如,我正在使用Qt库,当我点击“正在开始调试”时,输出窗口显示已加载Qt库的符号。如果VS可以停止加载这些符号,则调试启动时间应该更快。当然,我仍然希望VS为我的可执行文件加载符号。

回答

0

我不确定'startup'是什么意思。我假设你正在讨论启动实际应用程序。无论启动目标应用程序的模式如何,启动目标应用程序的时间都很昂贵。它在释放时可能会更少,但是可以忽略不计。

关闭其他解决方案中提到的所有符号路径是一个可行的选项。但是,我不确定为什么你正在调试,如果你不想为你启动的应用程序的符号。如果没有应用程序符号,在调试时将无法看到源代码中的位置。

如果您正在寻找更快的调试体验,您可以使用WinDbg。它随Windows SDK一起提供,但也可以单独下载。如果是比Visual Studio更快的用户界面,但是如果您更熟悉GUI,则更麻烦。 WinDbg使用命令来执行几乎所有的任务,但是你可以做一些很好的调试,并且与Visual Studio相比,它在许多情况下更快。如果您想调试C++ \ CLI或任何托管应用程序(例如C#),我会坚持使用Visual Studio。 WinDbg中有一个名为SOS的扩展,但它需要一些高级调试经验才能正确使用。

+0

使用WinDbg获得调试器性能的好处不会超过继续使用完整IDE的OP的生产效益。 WinDbg有其自己的位置 - 我仍然使用它来对本地代码中的恶意错误进行事后调试,例如堆栈溢出或损坏,其中IDE抛出了它的手或完全爆炸 - 但是在99%的情况下,VS对于本地C++来说会很好以及托管代码。 – 2010-09-18 14:11:00

+0

我的意思是在Visual Studio中点击“开始调试”时的开始时间。我想调试我的应用程序,但不是它加载的DLL,例如Qt库。也许我应该在调试时尝试使用发布版本的库。 – fxam 2010-09-18 14:12:02

+0

如果您想缩短发布时间,请删除相关库中的符号。在这种情况下,符号文件(pdbs)可能就在Qt库二进制文件的旁边。删除它们,它们将不会被加载。二进制文件的构建类型不会在很大程度上增加您的调试启动时间。 – linuxuser27 2010-09-18 15:35:41

18

刚发现Visual Studio 2010实际上是做我想做的。

只加载您的可执行文件的符号,而无需加载其他符号(例如:DLL文件):

  1. 进入工具 - >选项 - > Debugging->符号
  2. 点击“只有指定的模块毗邻模块‘
  3. 点击‘指定模块’
  4. 清除’始终载荷符号点击新图标
  5. 输入您的EXE (例如:my-awesome-app.exe)

还发现Visual Studio 2010在调试时似乎比Visual Studio 2008执行得更好。调试停止后,至少IDE布局切换回来的速度会更快。

+3

+1好方法。 – linuxuser27 2010-09-18 16:29:37

+0

终于有用的东西。第3步非常重要。 – mathiasfk 2016-09-30 14:04:33

相关问题