我在函数
中有一个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 ...
}
}
我使用它以便我可以在列中设置一个值,然后在系统到达它破坏的列时运行报告。
我遇到没有被捕获的情况,但是当我在循环之前设置一个无条件断点,然后在达到它之后运行,然后捕获断言(在这种情况下是循环的第15次)。
(#if DEBUG就在那里,因为ReportColumnTitle.BreakOnGenerate也在#if DEBUG部分) - 我不是要求查看这是否正确:)
除了设置断点之外,这是不一致的,然后似乎每次都正确地抛出断言。
有什么想法吗?
答案 0 :(得分:6)
此行为与VS2008 SP1中的调试器中的问题相匹配。已发布a hotfix。它在VS2010中重新出现,它的SP1再次修复了它。已知修补程序和SP1都非常稳定并处理调试器问题,我强烈建议您安装它。