сбой генерирует дамп - PullRequest
2 голосов
/ 20 мая 2011

Мое приложение иногда падает на компьютере клиента после запуска в течение 3-4 дней.Можно ли автоматически прикрепить приложение к отладчику, например ADplus, при запуске приложения?Это для создания файла дампа при сбое приложения.

Ответы [ 3 ]

1 голос
/ 20 мая 2011

Возможно, вы захотите взглянуть на функцию SetUnhandledExceptionFilter.

1 голос
/ 20 мая 2011

Так как вы хотите использовать ADPlus, я предполагаю, что решение подойдет только для Windows.
В этом случае вы можете установить посмертный отладчик.Он появится, как только ваше приложение выйдет из строя.Я обычно использую windbg.

0 голосов
/ 20 мая 2011

IMO, вам не нужно будет подключаться к отладчику при запуске процесса.Windows будет искать отладчик, когда процесс завершается, а местоположение задано. AeDebug RegistryKey

На компьютере x86 значение \\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug

CDB можно установить в качестве отладчика после смерти

Чтобы изменить отладчик после смерти на CDB, запустите cdb -iae или cdb -iaec KeyString.Когда используется параметр -iaec, KeyString указывает строку, которая будет добавлена ​​в конец командной строки, используемой для запуска отладчика после смерти.Если KeyString содержит пробелы, он должен быть заключен в кавычки.Эта команда не будет отображать сообщение в случае успеха, но будет отображать сообщение об ошибке в случае сбоя.Когда CDB является посмертным отладчиком, он будет активирован при каждом сбое приложения.

Я хотел бы получить что-то вроде cdb -iaec ".dump /ma /u crashedapp.dmp;q" для получения дампа памяти при завершении процесса.

Иесли ОС Vista Vista SP1 +, то реестр можно настроить для получения полного дампа памяти, используя WER http://msdn.microsoft.com/en-us/library/bb787181(VS.85).aspx

...