gpt4 book ai didi

c# - 在 VS10 中调试时未命中断点

转载 作者:可可西里 更新时间:2023-11-01 08:45:14 24 4
gpt4 key购买 nike

我正在处理一个 C# 和 Silverlight 项目,每隔一段时间我都会遇到一个问题,即在调试时我的断点不再命中。在编辑器中,它们没有变得透明,所以我知道正确的代码已加载并正在运行。

一个例子是:

我有带有 getter 和 setter 的 Value,它绑定(bind)到一个控件。当我在 setter 中放置一个断点并从控件更改 Value 的值时,断点没有被击中。

我知道 IIS 重置可以解决此问题,但我想知道原因。还有其他人发现类似的行为吗?如果有人能够指出可能的原因,我将不胜感激。

最佳答案

Visual Studio 2010 中有一个选项:

  • 工具 -> 选项...
  • 调试 -> 常规
  • “跳过属性和运算符(仅限托管)”

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

或者,这些代码元素可以使用各种调试属性之一进行修饰,即 DebuggerStepThroughAttributeDebuggerNonUserCodeAttributeDebuggerHiddenAttribute。这些可能会阻止调试器进入该方法,即使存在断点也是如此。

当然,如果您正在调试的代码已经过优化,它可能看起来像是缺少行。我不确定如果您尝试在已优化掉的行上设置断点会发生什么情况。

如果断点变成空心(不是纯红色),则 Visual Studio 可能无法找到代码的调试符号。

如果重置解决了问题,也许正在调试的代码与原始源文件/符号之间存在差异,可以选择降低严格程度:

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

关于c# - 在 VS10 中调试时未命中断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7123202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com