在VS10中调试时断点没有被击中

J L*_*erg 11 c# iis silverlight visual-studio-2010 visual-studio-debugging

我正在开发一个C#和Silverlight项目,每隔一段时间我遇到一个问题,我的断点在调试时不再受到攻击.在编辑器中,它们没有变得透明,因此我知道正确的代码已加载并正在运行.

一个例子是:

我有Value一个getter和setter,它被绑定到一个控件.当我在setter中放置一个断点并且我Value从控件中更改了值时,断点没有被击中.

我知道IIS重置修复了这个问题,但我想知道原因.有没有人发现类似的行为?如果有人能够指出我可能的原因,将非常感激.

Ada*_*rth 9

Visual Studio 2010中有一个选项:

  • 工具 - >选项......
  • 调试 - >常规
  • "跨越属性和运营商(仅管理)"

确保未选中此项.这假设断点是一个实心的红色圆圈,表示VS已找到它的调试符号.

可替代地,这些代码元素可以与各种调试属性,即一个被装饰DebuggerStepThroughAttribute,DebuggerNonUserCodeAttributeDebuggerHiddenAttribute.这些可能会阻止调试器进入方法,即使存在断点.

当然,如果您正在调试的代码已经过优化,那么它可能看起来像是缺少行.我不确定如果你试图断开一条已被优化的线路会发生什么.

如果断点已经空洞(不是纯红色),则Visual Studio可能无法找到代码的调试符号.

如果重置修复了问题,可能是正在调试的代码与原始源文件/符号之间存在差异,可以选择使其不那么严格:

  • 与上面相同的选项区域.
  • "要求源文件与原始版本完全匹配"