防止在Visual Studio中加载符号

时间:2009-11-25 18:57:36

标签: visual-studio debugging symbols

有人提出了许多问题,并提出了许多答案,但没有任何问题对我有用。

有一次,我使用这些说明打开了WPF项目的.NET符号加载:http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx

工作得很好,一切都很酷。

除了在Silverlight项目中,它还会尝试从该服务器加载符号,但它们不存在,因此调试项目的启动时间非常长。

所以,我关闭了符号加载,它确实停止尝试加载所有符号,除了一个名称空间:System.Windows.Browser。 VS仍然试图加载每个F5,花费几秒钟让我疯狂。

我尝试添加此处提到的符号服务器:http://blogs.msdn.com/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx

认为可能符号存在,它们会被加载和缓存,一切都会好的。但是,不,它们不仅没有被加载,而且VS试图为我项目中的每个其他DLL加载符号,包括那些符号从未可用的符号,这使得启动时间更长。

坦率地说,我甚至不需要调试这些DLL的源代码,我只是觉得它很酷。现在我无法将其关闭,这让我感到沮丧。有什么问题?

2 个答案:

答案 0 :(得分:8)

工具 - >选项 - >调试 - >符号 - >选中“仅在手动加载符号时搜索上述位置”,或从列表中删除所有内容。

如果选中此框,则可以rclick - >在模块列表/堆栈窗口中的DLL上加载符号。

答案 1 :(得分:3)

我想你可能有

_NT_SYMBOL_PATH 

在您的环境中定义。这似乎会覆盖你在Tools-> Options-> Debugging-> Symbols中所做的任何事情。我遇到了同样的问题,它差点把我当成了香蕉,但是在创造力的瞬间,我在devenv.exe上指导procmon(来自sysinternals)并在日志中搜索“符号”,首先出现的是提到的环境变量以上。可能还有其他类似的险恶的侧面通道,但如果你能通过procmon的一点帮助也能解决这些问题,我不会感到惊讶。

我怀疑这种行为来自于加载符号的symsrv.dll与其他工具一起使用的事实,并且有不同的方式来表示应该加载符号......好吧,我想这是“狗屎发生”的帐户。

另一方面 - 如果你有使用wininet函数的代码,例如HttpSendRequest(),这种行为对你来说真的很糟糕。它将迅速使视觉工作室和互联网爆炸的所有实例陷入僵局。添加到不会让自己关闭的符号加载。你可以想象我到目前为止的一天......

但我现在感觉好多了:)

// P