Mono Develop调试器在将2d数组传递给函数时崩溃
本文关键字:函数 崩溃 数组 调试器 Develop 2d Mono | 更新日期: 2023-09-27 17:50:24
我在调试mono应用程序时遇到了问题,使用mono开发。当我试图调试代码内的函数,得到2d数组作为参数,调试器崩溃。例如,然后调试器步骤测试函数:
float[,] b = new float[4,4];
Test(b);
static void Test(float[,] x)
{
float[,] y = x;
}
我得到断言错误:
回调异常:System.Reflection.TargetInvocationException:异常已被调用的目标抛出。——>系统。日志含义IndexOutOfRangeException: Index超出了数组的边界。
是有什么我做错了我的代码,还是有什么问题与mono/monodevelop?
编辑:是的,这个代码只是一个例子;
这是MonoDevelop中Win32 CorDebugger插件中的一个bug。
作为一种解决方案,你可以在Windows上安装Mono,并以Mono框架/调试器为目标,而不是Microsoft运行时/调试器,这样事情就会为你工作。
(Mono调试器插件维护得更好)
这段代码没有问题,它可以在Mono调试器下编译和运行。
(我在OS x上使用MonoDevelop 3.1.1)
这是我编译的c#程序:
using System;
class MainClass
{
public static void Main (string[] args)
{
float[,] b = new float[4,4];
Test(b);
Console.WriteLine ("Hello World!");
}
static void Test(float[,] x)
{
float[,] y = x;
}
}
另外,TargetInvocationException
表明错误发生在通过反射调用的方法中——也许这就是您错过实际问题的原因?堆栈跟踪应该为您提供在哪里查找实际异常的提示。它甚至可能在不同的线程中。