C# 在VS10中调试时未命中断点
我正在从事一个C#和Silverlight项目,偶尔我会遇到一个问题,在调试时我的断点不再被击中。在编辑器中,它们不是透明的,因此我知道正确的代码已加载并正在运行 例如: 我有一个带有getter和setter的C# 在VS10中调试时未命中断点,c#,silverlight,visual-studio-2010,iis,visual-studio-debugging,C#,Silverlight,Visual Studio 2010,Iis,Visual Studio Debugging,我正在从事一个C#和Silverlight项目,偶尔我会遇到一个问题,在调试时我的断点不再被击中。在编辑器中,它们不是透明的,因此我知道正确的代码已加载并正在运行 例如: 我有一个带有getter和setter的值,它绑定到一个控件。当我在setter中放置一个断点并从控件中更改value的值时,断点不会被击中 我知道IIS重置修复了此问题,但我想知道原因。还有其他人发现类似的行为吗?如果有人能为我指出可能的原因,我将不胜感激。Visual Studio 2010中有一个选项: 工具->选项
值
,它绑定到一个控件。当我在setter中放置一个断点并从控件中更改value
的值时,断点不会被击中
我知道IIS重置修复了此问题,但我想知道原因。还有其他人发现类似的行为吗?如果有人能为我指出可能的原因,我将不胜感激。Visual Studio 2010中有一个选项:
- 工具->选项
- 调试->常规
- “跳过属性和运算符(仅限托管)”
debuggerstepthoghattribute
、DebuggerNonUserCodeAttribute
和DebuggerHiddenAttribute
。这可能会阻止调试器进入该方法,即使存在断点
当然,如果您正在调试的代码已经过优化,它可能看起来缺少行。我不确定如果你试图中断一条经过优化的线会发生什么
如果断点变为空心(不是纯红色),则VisualStudio可能无法找到代码的调试符号
如果重置修复了该问题,则可能正在调试的代码与原始源文件/符号之间存在差异,可以选择降低该问题的严格性:
- 与上面相同的选项区域
- “要求源文件与原始版本完全匹配”
Console.WriteLine(myVar.myProp)
,并且我也在myProp
getter内部中断,如果仍启用以下设置,则将完全跳过getter内部的断点
对于Visual Studio选项:
对于重拾器选项:
因此,请关闭这些选项,以避免数据提示导致断点被跳过。我知道这不是问题所在。我每次检查的第一件事。不过谢谢。这是我一直在想的。感谢您提供有关设置的信息。我很确定这会解决的。