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

时间:2015-02-03 04:15:15

标签: c++ visual-studio opencv nvidia pdb

Visual Studio Community 2013
Windows 8.1 64bit
OpenCV 3.0 beta
GPU:NVIDIA GeForce GT 540M
和英特尔核心显卡。

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

VS告诉我这个:

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

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

2 个答案:

答案 0 :(得分:2)

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

  

更改特定模块的符号加载行为   在“模块”窗口中,右键单击该模块。   指向“自动符号加载设置”,然后单击“始终手动加载”或“默认”。在重新启动调试会话之前,更改不会生效。

答案 1 :(得分:0)

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

  • 切换到"模块"底部的标签
     image description
  • 选择您要跳过的任何模块
  • 在上下文菜单中,选择自动加载设置 - 始终手动加载

image description

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

image description