C # аварийного дампа не существует - PullRequest
1 голос
/ 01 февраля 2010

У меня есть приложение на C #, которое иногда вылетает по неизвестной причине. Поэтому я хочу найти файл аварийного дампа, но он не существует. Я также написал небольшое приложение, которое вызывает исключение DivideByZero (необработанное). Последствия этого: в одной системе программа закрывается без каких-либо сообщений, в другой системе (ВМ) я получаю простой отчет о сбое, который хочет отправить данные в Microsoft.

Я настроил drwtsn.exe и настройки реестра. Я также пытался использовать WinDbg безуспешно.

Кто-нибудь знает, как заставить систему записывать файлы дампа?

С наилучшими пожеланиями, эль

Ответы [ 2 ]

3 голосов
/ 01 февраля 2010

Вам нужно написать обработчик события для события AppDomain.UnhandledException. Регистрация значения e.ExceptionObject.ToString () почти всегда достаточно хороша, трассировка стека говорит вам, как код попал в проблему.

P / Invoking MiniDumpWriteDump () из dbghelp.dll также возможен, вы получите файл .dmp, который вы можете использовать для анализа исключения с WinDbug. Dbghelp.dll доступен в Vista и Win7, его можно получить из Средства отладки для Windows , загруженного для более ранних версий. Однако вы не сможете получить хорошие трассировки управляемого стека из этого минидампа, пока не выйдет VS2010.

1 голос
/ 01 февраля 2010

ADPlus - самый простой способ. Обширная документация начинается здесь: http://support.microsoft.com/kb/286350

...