阻止Visual Studio尝试加载特定DLL的符号

Ric*_*dle 61 debugging debug-symbols visual-studio

我将Visual Studio 2005设置为使用Microsoft的符号服务器.我还安装了UltraMon,它为每个进程注入一个钩子DLL.每当我开始调试我的MFC应用程序时,Visual Studio会说:

"Loading symbols for C:\Program Files\UltraMon\RTSUltraMonHookX32.dll..."
Run Code Online (Sandbox Code Playgroud)

从眨眼间到几十秒钟.它永远不会找到那些符号......我可以告诉它不要去寻找它吗?

(我尝试创建一个空RTSUltraMonHookX32.pdb文件,但Visual Studio发现它不好并继续查找.)

Jar*_*Par 107

您无法以非常精细的方式执行此操作,但您可以禁用自动符号加载,然后通过"模块"窗口(调试 - > Windows - >模块)手动选择要加载的符号.

禁用自动符号加载

  • 工具 - >选项 - >调试 - >符号
  • 选中"仅在手动加载符号时搜索上述位置"

  • 显然这个选项在 Visual Studio 2019 中消失了? (9认同)
  • 在 Visual Studio 2019 中:工具 > 选项 > 调试 > 符号,然后取消选中慢速服务器的“符号文件 (.pdb) 位置”,例如“Microsoft 符号服务器” (4认同)
  • 单击“清空符号缓存”按钮就可以解决我的问题。 (3认同)

Den*_*rev 25

还要检查您是否没有"_NT_SYMBOL_PATH"环境变量.如果你有这个var符号将加载,无论VS设置如何.


Cal*_*602 20

从Visual Studio 2010开始,您可以访问:

Tools -> Options -> Debugging -> Symbols -> Specify excluded modules
Run Code Online (Sandbox Code Playgroud)

并输入需要很长时间才能加载的dll列表.我使用输出窗口给出的完整路径; 也许它接受通配符或简单的文件名.

  • 遗憾的是,这在 Visual Studio 2005 中不可用,但很高兴知道它在更高版本中存在。 (2认同)

Hug*_*opp 9

在我的情况,那是因为我已经设置了"启用净源步进"为真

Tools > Options > Debugging > General. 
Run Code Online (Sandbox Code Playgroud)

我将"Enable Just My Code"设置为true,而不是将其设置为false,这会自动将"Enable .Net Source Stepping"设置为false.在这样做之前它给了我一个警告:

Enabling Just my code automatically disabled .Net framework source stepping
Run Code Online (Sandbox Code Playgroud)

这表明Just My Code.Net source stepping互斥的.

我希望这可以帮助别人.

  • 我的天啊!实际上将其设置为“Enable .Net Source Stepping”为 true 并禁用“Just My Code”会使错误消失。这与你所说的相反,但它确实达到了目的。非常感谢! (2认同)