gpt4 book ai didi

c# - Debug.Assert 有时不起作用

转载 作者:行者123 更新时间:2023-12-02 16:17:23 29 4
gpt4 key购买 nike

我在函数中使用 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 部分中) - 我并不是要求查看这是否正确:)

除了设置断点之外,这并不一致,似乎每次都正确地抛出断言。

有什么想法吗?

最佳答案

此行为与 VS2008 SP1 中的调试器中的问题相符。有a hotfix为此而释放。它在 VS2010 中回归,其 SP1 再次修复了它。众所周知,该修补程序和 SP1 都非常稳定,并且可以解决调试器问题,我强烈建议您安装它。

关于c# - Debug.Assert 有时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6225678/

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