我有一个奇怪的错误,它突然开始,这让我发疯。在我的C#应用程序中,我正在做一些繁重的数学计算,为此,我使用的是CenterSpace的NMath库。最近,当我从Visual Studio 2015内部启动我的应用程序以进行调试时,每当我调用NMath库方法(以及我们编写的另一个库)时,由于NMath.dll中的NullReferenceExceptions,应用程序开始崩溃。为了隔离问题,我只运行以下非常基本的矩阵乘法代码:
static void Main(string[] args)
{
var mA = new DoubleMatrix(100, 200, 1.5);
var mB = new DoubleMatrix(200, 50, 1.2);
var mC = NMathFunctions.Product(mA, mB);
Console.WriteLine(mC[5, 6]);
Console.WriteLine("Computation finished");
Console.ReadLine();
}
当我因为NullReferenceException而调用“NMathFunctions.Product”方法时,代码在第三行崩溃,并带有以下异常详细信息:
它似乎只是在“NMathKernel”对象的构造函数中崩溃,因为没有正确设置对象引用。
最奇怪的是,当我使用Windows资源管理器而不是在Visual Studio中直接从其项目文件夹运行完全相同的程序时,程序运行完美:第四行按预期打印“360.000000001”和“控制台”。 ReadLine()“已到达!
我对这个NullReferenceException错误的原因完全无能为力。它似乎不是第三方DLL相关的问题,因为程序只在从Visual Studio中启动时崩溃。这个错误完全阻止我使用Visual Studio调试我的程序,这是一件痛苦的事情,让我从Visual Studio外部调用“Console.WriteLine”调用它是唯一的选择。这个问题可能是什么原因?可能是我的Build设置搞砸了吗? (顺便说一下,我已经检查过,发现没有任何故障)。任何线索或提示都非常受欢迎。
答案 0 :(得分:2)
Tools -> Options -> Debugging
并确保选中Enable Just My Code
选项。Debug -> Exceptions
并取消所有Thrown
个cheboxbox。只选中User-unhandled
复选框。或者只使用Reset all
按钮。