Debug.Assert有时不起作用

Ces*_*ere 2 c# debugging visual-studio

我在函数中的Debug.Assert ine有以下问题

public override ReportErrorLevel GenerateResults(bool reformat) {
...
   for (int Col = MinResultsCol; Col < MaxResultsCol + 1; Col++) {
      try {
         ReportColumnTitle ColTitle = ColumnInfo[Col];

         #if DEBUG
         Debug.Assert(ColTitle.BreakOnGenerate, "...");
         #endif

         ...
      } catch ...
   }
}
Run Code Online (Sandbox Code Playgroud)

我使用这个,以便我可以在列中设置一个值,然后运行一个报告,当系统到达它中断的列时.

我遇到没有被捕获的情况,但是当我在循环之前设置一个无条件断点,然后一旦达到它就运行,然后捕获断言(在这种情况下是第15次循环).

(#if DEBUG就在那里,因为ReportColumnTitle.BreakOnGenerate也在#if DEBUG部分) - 我不是要求查看这是否正确:)

除了设置断点之外,这是不一致的,然后似乎每次都正确地抛出断言.

有任何想法吗?

Han*_*ant 6

此行为与VS2008 SP1中的调试程序中的问题相匹配.有一个发布的修复程序.它在VS2010中重新出现,它的SP1再次修复了它.已知修补程序和SP1都非常稳定并处理调试器问题,我强烈建议您安装它.