如何在没有 Nvidia DLL 的情况下调试 OpenCV 程序?

How to debug OpenCV program without Nvidia DLLs?

Visual Studio 社区 2013
Windows8.1 64 位
OpenCV 3.0 测试版
显卡:NVIDIA GeForce GT 540M
和英特尔核心显卡。

当我要调试OpenCV程序时,除了nvinit.dll、detoured.dll、Nvd3d9wrap.dll、nvdxgiwrap.dll外,所有符号文件(.pdb)都加载成功。

VS 告诉我的:

'ImageWatchT.exe' (Win32):已加载 'C:\Windows\SysWOW64\nvinit.dll'。 Include/Exclude 设置禁用加载。
'ImageWatchT.exe' (Win32):已加载 'C:\Program Files (x86)\NVIDIA Corporation\coprocmanager\detoured.dll'。 Include/Exclude 设置禁用加载。
'ImageWatchT.exe' (Win32):已加载 'C:\Program Files (x86)\NVIDIA Corporation\coprocmanager\Nvd3d9wrap.dll'。 Include/Exclude 设置禁用加载。
'ImageWatchT.exe' (Win32):已加载 'C:\Program Files (x86)\NVIDIA Corporation\coprocmanager\nvdxgiwrap.dll'。 Include/Exclude 设置禁用加载。

这四个 DLL 显然属于 Nvidia。
那么,如何在没有这四个 Nvidia DLL 的情况下进行调试?

您可以禁用模块的符号加载,因此: (来自 https://msdn.microsoft.com/en-us/library/4c8f14c9.aspx

To change symbol load behavior for a specific module In the Modules window, right-click the module. Point to Automatic Symbol Load Settings and then click Always Load Manually or Default. Changes do not take effect until you restart the debugging session.

要扩展其他答案,请在 Visual Studio 2010 中执行以下操作:

  • 切换到底部的 "Modules" 选项卡
  • Select 您要跳过的任何模块
  • 在上下文菜单中,select 自动加载设置 - 始终手动加载

您也可以在同一上下文菜单中通过 符号设置... 进入详细设置。在那里,您可以使用模块的白名单而不是黑名单,即您可以只选择加载您想要的模块: