2

モノ開発を使用して、モノ アプリケーションのデバッグに問題があります。2 次元配列をパラメーターとして取得する関数内のコードをデバッグしようとすると、デバッガーがクラッシュします。たとえば、デバッガーは Test 関数内で次のようにステップします。

float[,] b = new float[4,4];
Test(b);

static void Test(float[,] x)
{
    float[,] y = x;
}

私はアサーションエラーを取得しています:

コールバックの例外: System.Reflection.TargetInvocationException: 呼び出しのターゲットによって例外がスローされました。---> System.IndexOutOfRangeException: インデックスが配列の範囲外でした。

私のコードに何か問題がありますか、それとも mono/monodevelop に何か問題がありますか?

編集: はい、このコードは単なる例です。私は問題を絞り込もうとしていました。

4

2 に答える 2

1

これは、MonoDevelopのWin32CorDebuggerアドインのバグです。

回避策として、WindowsにMonoをインストールし、Microsoftランタイム/デバッガーの代わりにMonoフレームワーク/デバッガーをターゲットにすることができます。

(Monoデバッガーアドインははるかによく維持されます)

于 2013-01-03T20:34:40.540 に答える
0

このコードに問題はありません。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エラーが発生したことを示しています— これが実際の問題を見落とした理由でしょうか? スタック トレースは、実際の例外を探す場所のヒントを提供するはずです。それは別のスレッドにあるかもしれません。

于 2013-01-03T01:24:14.583 に答える