0

最初のチャンスの例外を生成するコードは次のとおりです。

class MyClass
{
    public string SomeField { get; set; }
}
class Program
{
    static void Main(string[] args)
    {

        try
        {
            Print(null);
        }
        catch { }

    }


    static void Print(MyClass myclass)
    {
        Console.WriteLine(myclass.SomeField);
    }
}

次のように ProcDump をセットアップして、クラッシュ ダンプをキャプチャします。

ProcDump -ma MyApplication.exe

私の理解では、このコマンドは最初のチャンスと 2 番目の変更例外の両方をキャプチャする必要があります。ただし、上記のコードでは例外は発生しません。コードから catch ブロックを削除すると、ダンプ ファイルが取得されますが、2 回目の例外になるはずです。最初のチャンスでクラッシュダンプが得られない理由はありますか?

4

1 に答える 1

3

あなたはそれを正しく使用していません。コードを次のように変更します。

static void Main(string[] args) {
    Console.WriteLine("Okay, start ProcDump now and press Enter");
    Console.ReadLine();
    try {
        Print(null);
    }
    catch { }
}

代わりに DebugDiag を検討してください。

于 2014-08-22T18:19:12.193 に答える