我在函数中的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次)。
(由于ReportColumnTitle.BreakOnGenerate也位于#if DEBUG部分中,因此存在#if DEBUG)-我不要求对此是否正确的看法:)
除了设置断点之外,这并不一致,因此断言似乎每次都正确抛出。
有任何想法吗?
最佳答案
此行为与VS2008 SP1中的调试器中的问题匹配。为此发布了a hotfix。它在VS2010中重新出现,其SP1再次对其进行了修复。众所周知,此修补程序和SP1都很稳定,可以解决调试程序问题,我强烈建议您安装它。