2009-03-09 4 views
1

Мы иногда получаем диалог dr watson crash при выходе из процесса. Этот процесс - .NET 2.0. Диалог не очень полезен. В нем говорится, что процесс перестает работать и в деталях Я вижу, что речь идет о System.NullReferenceException, отлично, но где трассировка?dr watson crash dialog при закрытии приложения .NET 2.0

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

ответ

0

Прикрепить с помощью WinDBG. По всей вероятности, исключение возникает в неуправляемом коде.

+0

, хотя он говорит System.NullPointerException? – luntain

+0

, что было на опыте; когда w3wp выходит из строя вне вызова запроса процесса (т. е. без обработки управляемых исключений) dr watson обычно берет на себя и создает дамп (это, как упоминалось в smacl, зависит от конфигурации машины). windbg - просто лучший отладчик в целом, чем визуальная студия. –

0

Если авария воспроизводима, возможно, стоит отключить отладчик на всех исключениях (возможно, как на родном, так и на CLR), прежде чем вы завершите работу приложения. Часто авария может быть связана с более ранней ошибкой, поэтому это может дать вам ключ.

Вы заглянули в файлы дампа Dr Watson? Обычно они должны сообщать вам, по крайней мере, какой модуль вызвал эту проблему. Если бы вы имели дело с собственным кодом, вы могли бы загрузить файл minidump, предоставленный Dr Watson в Visual Studio, и предоставив вам файлы и исходные коды отладки на этом компьютере, вы сможете увидеть состояние своего приложения на время сбоя, стоп вызовов повреждающего потока и строка кода, которая вызывала сбой. Я понятия не имею, что происходит с управляемым кодом, но, возможно, стоит попробовать.

Эта ссылка должна дать вам больше информации о анализе минидампы файлов Link to CodeProject

+0

Где я могу найти этот мини-накопитель? – luntain

+0

Они обычно создаются примерно в то время, когда вы нажимаете отправить отчет об ошибке Microsoft. Должна быть опция просмотра файлов, которые она собирается отправить, одна из которых должна иметь расширение .dmp.Скопируйте этот файл где-нибудь еще, поскольку я думаю, что он автоматически удаляется после отправки результатов на MS –

+0

. Также может быть * .mdmp. Эта ссылка дает некоторую информацию об анализе мини-данных: http://www.codeproject.com/KB/debug/postmortemdebug_standalone1 .aspx # _Creating_a_Minidump –

1

Я склонен disable Dr Watson на Девых машинах и использовать Visual Studio, как только это время отладчик, который получает загорелся, когда бомбы приложения. Я нахожу этот способ более полезным с точки зрения анализа основных причин, особенно если у вас есть отладочная информация.

0

Я использую DILE для отладки приложений на производственных серверах.

Dotnet IL редактор (DILE) позволяет разборке и отладки .NET 1.0/1.1/2.0/3.0/3.5 приложения без исходного кода или PDB-файлы. Он может отлаживать даже сам или сборки .NET Framework на уровне IL .

Это спасло мою жизнь несколько раз, когда приложения потерпели крах и больше информации не было доступно. Однако он имеет высокую кривую обучения, но стоит знать о тех ситуациях, когда у вас нет доступа к Visual Studio или другим инструментам.

Я считаю, что более новые версии также могут читать файлы дампа.

Смежные вопросы