【问题标题】:Slow loading of symbols during call to CoCreateInstance in VS 2012在 VS 2012 中调用 CoCreateInstance 期间符号加载缓慢
【发布时间】:2015-07-08 15:38:52
【问题描述】:

在我的 MFC 项目中,我有时会调用 CoCreateInstance

if ( SUCCEEDED( CoCreateInstance ( CLSID_DragDropHelper, NULL,
                                   CLSCTX_INPROC_SERVER,
                                   IID_IDropTargetHelper,
                                  (void**) &m_piDropHelper ) ))
{
   ...
}

稍后,一旦我完成了DragDropHelper,我就会打电话给Release

m_piDropHelper->Release();

到目前为止一切顺利,一切正常。

但在调试过程中,第一次调用 CoCreateInstance 非常慢,因为 VS 正在加载大量符号(此加载在 VS 输出窗口中可见,见下文)。随后对同一CoCreateInstance 的调用速度很快。但是当我重新启动调试器时,对这个CoCreateInstance 的第一次调用又变慢了。

我不需要这些符号。

有没有办法阻止 Visual Studio 加载所有这些符号。

调试时输出窗口的部分内容

'MyProg.exe': Loaded 'C:\Windows\SysWOW64\WindowsCodecs.dll', Symbols loaded (source information stripped).
'MyProg.exe': Loaded 'C:\Windows\SysWOW64\apphelp.dll', Symbols loaded (source information stripped).
'MyProg.exe': Loaded 'C:\Program Files (x86)\Common Files\TortoiseOverlays\TortoiseOverlays.dll', Cannot find or open the PDB file.
'MyProg.exe': Loaded 'C:\Program Files\TortoiseGit\bin\TortoiseGitStub32.dll', Cannot find or open the PDB file.
'MyProg.exe': Loaded 'C:\Program Files\TortoiseGit\bin\TortoiseGit32.dll', Cannot find or open the PDB file.
'MyProg.exe': Loaded 'C:\Program Files\TortoiseGit\bin\libgit232_tgit.dll', Cannot find or open the PDB file.
'MyProg.exe': Loaded 'C:\Program Files\TortoiseGit\bin\zlib132_tgit.dll', Cannot find or open the PDB file.
'MyProg.exe': Loaded 'C:\Windows\SysWOW64\msvcr120.dll', Symbols loaded.
'MyProg.exe': Loaded 'C:\Windows\SysWOW64\ws2_32.dll', Symbols loaded (source information stripped).
   <30 more similar lines>
'MyProg.exe': Unloaded 'C:\Program Files (x86)\Microsoft Office\Office14\GROOVEEX.DLL'
'MyProg.exe': Loaded 'C:\Program Files (x86)\Microsoft Office\Office14\GROOVEEX.DLL', Cannot find or open the PDB file.
'MyProg.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\msvcr90.dll', Symbols loaded (source information stripped).
'MyProg.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\msvcp90.dll', Symbols loaded (source information stripped).
'MyProg.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.vc90.atl_1fc8b3b9a1e18e3b_9.0.30729.6161_none_51cd0a7abbe4e19b\ATL90.dll', Symbols loaded (source information stripped).
'MyProg.exe': Loaded 'C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\Cultures\OFFICE.ODF', Cannot find or open the PDB file.
'MyProg.exe': Loaded 'C:\Program Files (x86)\Microsoft Office\Office14\1036\GrooveIntlResource.dll', Cannot find or open the PDB file.
'MyProg.exe': Loaded 'C:\Windows\SysWOW64\RpcRtRemote.dll', Symbols loaded (source information stripped).

【问题讨论】:

  • 您是否尝试过使用工具/选项/调试/符号来排除您不想要的符号?有两种方法可以从该对话框加载符号。
  • @HansPassant 我不太确定你提到的讨论主题与我的问题有什么关系。还是谢谢。

标签: visual-studio mfc visual-c++-2012


【解决方案1】:

您可以使用工具/选项/调试/符号来包含/排除符号。

“自动加载符号:”的两个选项应该提供您想要的。

【讨论】:

    猜你喜欢
    • 2016-07-26
    • 2015-04-15
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多