Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在VS10中调试时未命中断点_C#_Silverlight_Visual Studio 2010_Iis_Visual Studio Debugging - Fatal编程技术网

C# 在VS10中调试时未命中断点

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中有一个选项: 工具->选项

我正在从事一个C#和Silverlight项目,偶尔我会遇到一个问题,在调试时我的断点不再被击中。在编辑器中,它们不是透明的,因此我知道正确的代码已加载并正在运行

例如:

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


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

Visual Studio 2010中有一个选项:

  • 工具->选项
  • 调试->常规
  • “跳过属性和运算符(仅限托管)”
确保这没有被检查。这假定断点是一个红色实心圆,表示VS已为其找到调试符号

或者,这些代码元素可以用各种调试属性中的一种进行修饰,即
debuggerstepthoghattribute
DebuggerNonUserCodeAttribute
DebuggerHiddenAttribute
。这可能会阻止调试器进入该方法,即使存在断点

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

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

如果重置修复了该问题,则可能正在调试的代码与原始源文件/符号之间存在差异,可以选择降低该问题的严格性:

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

我最近遇到了这个问题。虽然我没有找到确切的原因,但一个简单的修复方法是检查应用程序是否在调试模式下运行(与发行版相反),并清理/重建解决方案

在winforms应用程序上,我多次遇到这个问题。所以我要做的简单的事情是,在清理和重建解决方案之前重新启动VS。然后,如果没有任何结果,只需删除bin目录并让其重新生成。我做的最后一个选择是重新启动计算机。

在试图理解为什么在vs2010中运行代码时我自己的项目的断点没有被击中时发现了这个问题

通过查看“高级编译选项”下的项目属性,并将“生成调试信息”设置为“完整”,解决了此问题

可能值得一提的是,我使用非常方便的TestDriven.net的“Test With->Debugger”,通过右键单击我希望调试的函数,跳转到我希望调试的代码中。

(至少)两个潜在原因:Visual Studio选项、或ReSharper选项

示例:如果我在一些调用中中断,如
Console.WriteLine(myVar.myProp)
,并且我也在
myProp
getter内部中断,如果仍启用以下设置,则将完全跳过getter内部的断点

对于Visual Studio选项:

对于重拾器选项:


因此,请关闭这些选项,以避免数据提示导致断点被跳过。

我知道这不是问题所在。我每次检查的第一件事。不过谢谢。这是我一直在想的。感谢您提供有关设置的信息。我很确定这会解决的。