使用Visual Studio 2008 SP1和VB.NET项目;我有一些代码,我无法介入。立即窗口显示消息 “踩过没有符号的方法'Some.Namespace.Here'”
我怎样才能确保方法总是有符号?!我需要进入每一行代码。我正在按F8(在VS2008中是“Step Into”,从内存中我认为它曾经是VS2005中的F11)。
这个调试器的东西总是困惑我: 在解决方案级别属性页面中,我看到一个包含4个值的配置下拉列表:活动(调试),调试,发布,所有配置。 - 当前设置为“Active(Debug)” 在项目级别,我看到一个包含2个值的配置下拉列表: 调试,发布。 - 目前设置为“Debug”
答案 0 :(得分:22)
答案 1 :(得分:4)
我在Visual Studio 2010中遇到了同样的问题。我会尝试进入.NET Framework源代码,Visual Studio会跨过它,输出窗口会说它无法进入,因为符号文件不是加载但是当我查看模块窗口时,我会看到相关的符号文件实际上已加载。
问题是.NET符号文件已加载,但它不是包含源信息的.NET符号文件。位于http://referencesource.microsoft.com/symbols的Microsoft公共符号服务器包含包含源信息的符号。 Microsoft http://msdl.microsoft.com/download/symbols处的公共符号服务器包含没有源信息的符号。
一种解决方案是正确设置_NT_SYMBOL_PATH,以便它从http://referencesource.microsoft.com/symbols获取.NET Framework符号(如果存在),否则从http://msdl.microsoft.com/download/symbols获取。像这样的东西会起作用:
_NT_SYMBOL_PATH = SRV * d:\ SymbolsCache * HTTP://referencesource.microsoft.com/symbols; SRV * d:\ SymbolsCache * HTTP://msdl.microsoft.com/download/symbols
这个_NT_SYMBOL_PATH将使调试器首先查找带有源信息的符号,然后如果没有,它将获得没有它的符号。当Visual Studio具有包含源信息的符号文件时,它可以进入该代码。
答案 2 :(得分:0)
如果有问题的命名空间是第三方dll没有附带符号(pdb文件),那么就会发生这种情况。为了“进入”,需要符号文件。
如果它是您自己的代码,那么您只需要仔细检查您的符号文件是否存在。将它设置为在项目级别进行调试应该这样做。