Когда мы должны захватить файл DUMP для отладки - PullRequest
2 голосов
/ 10 февраля 2012

Допустим, у меня есть приложение .NET, которое вылетает при закрытии, и я хочу использовать DebugDiag, чтобы увидеть, что происходит. Поэтому мы должны создать файл дампа. Мой вопрос: когда мы создаем этот файл дампа? Должен ли я создать его при запуске приложения? хорошо, если я сделаю это, он скажет, что файл дампа был создан в этом временном местоположении ... хорошо .. тогда я продолжаю работать с приложением и заставляю его падать, но я путаюсь с тем, что он очень хорошо создал файл дампа очень рано, но в конце произошел сбой, так как даже этот файл дампа может быть полезен? как обновляться автоматически после работы с этим приложением?

Ответы [ 2 ]

3 голосов
/ 10 февраля 2012

Для сбоя (который обычно является необработанным исключением) вы должны создать файл дампа, когда исключение становится вторым случайным исключением. Я не очень знаком с DebugDiag, но такие инструменты, как adplus (Инструменты отладки для Windows) и ProcDump, позволят вам создавать дампы для этого.

В некоторых случаях вы можете также создать дампы для исключений первого шанса (т.е. до того, как какой-либо код получит обработку исключения). Например. если исключение, вызывающее сбой, охватывает другое исключение, у вас может не хватить информации на данный момент. В этих случаях создание файлов дампа для исключений первого шанса даст вам подробную информацию о состоянии исходного исключения.

1 голос
/ 10 февраля 2012

Вы можете настроить windows для создания файлов дампа при сбое процесса. Эта функция не включена по умолчанию: Сбор дампов в режиме пользователя . Процесс отличается для Windows XP: Захват аварийных дампов приложений . Когда у вас есть файл дампа, вы можете открыть его и исследовать с помощью WinDbg . Я очень рекомендую блог Тесс Фернандес и эту книгу .

...