闯入C#调试器除以零

我正在使用C#和XNA库,我在我的Vector3对象中出现了NaNs.当有问题的计算发生时,有没有办法进入调试器(例如除以零)?目前该计划正在继续运行.我正在使用VS2008 Professional. “例外”对话框中的所有例外都在“user-unhandled”列中选择.

编辑:为了澄清,我无法弄清楚计算错误的地方.这就是我希望调试器自动中断的原因.设置断点不是解决方案.

最佳答案
首先将double / float除以零得到Infinity / -Infinity,取决于double是正还是负.只有零双/浮点数除以零才能得到NaN.在任何一种情况下,都不会抛出任何异常.

您应该能够使用条件断点来检测特定变量何时设置为其中一个值.在检查NaN时要小心,因为NaN!= NaN.

double a = double.NaN;
Console.Out.WriteLine(a == double.NaN); // false
Console.Out.WriteLine(a == a); // false
Console.Out.WriteLine(double.IsNaN(a)); // true

转载注明原文:闯入C#调试器除以零 - 代码日志