Почему я не получаю файл дампа для исключения первого шанса

Вот код, который должен генерировать исключение первого шанса.

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

Насколько я понимаю, эта команда должна захватить оба исключения первого и второго изменения. Однако с кодом выше я не получаю никаких исключений. Если удалить блок catch из моего кода, я получаю файл дампа, но это должно быть вторым случайным исключением. Есть идеи, почему я не получаю аварийный дамп для первого шанса?

1 ответ

Решение

Вы не используете это правильно, не стесняйтесь сказать вам это. Измените свой код на:

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

Рассмотрим DebugDiag в качестве альтернативы.

Другие вопросы по тегам