Как получить аварийный дамп для Обработанного исключения?
-
20-09-2019 - |
Вопрос
Моя dll используется модулем, который грязно улавливает все исключения и просто регистрирует их в файле.
Моя проблема заключается в том, что на сайте клиента нарушен доступ, который воспроизводим только на его компьютере, и я хочу, чтобы этот клиент мог сгенерировать файл дампа для решения этой проблемы.
Я попытался сгенерировать AV в моей dll и сгенерировать файл дампа с помощью adplus, но дамп не был создан, поскольку AV перехватывается модулем, который использует мою dll.
Итак, мой вопрос заключается в следующем:
Есть ли способ сгенерировать файл аварийного дампа даже при обработанном исключении?
Спасибо,
Янн
Решение
Использование ADPlus ( Реклама плюс ), вы можете прочитать больше о настройке ADPlus здесь (Мини-дампы для конкретных исключений)
Ваш конфигурационный файл будет выглядеть примерно так:
<ADPlus>
<Settings>
<RunMode>CRASH</RunMode>
<Option>Quiet</Option>
</Settings>
<Exceptions>
<Config>
<Code>AllExceptions</Code>
<Actions1>FullDump</Actions1>
</Config>
</Exceptions>
</ADPlus>
Другие советы
Для Windows Vista с пакетом обновления 1 и более поздних версий службу отчетов об ошибках Windows можно настроить на создание аварийных дампов при сбое приложения:
В разделе реестра:
HKEY_LOCAL_MACHINE\ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ\Microsoft\ Windows\Отчеты об ошибках Windows\LocalDumps]
Определение значений:
- Папка дампа (REG_EXPAND_SZ) - место, где хранятся файлы дампа
- DumpType (REG_DWORD) - 2 для полного дампа, 1 для мини-дампа
Это работает как для 32-разрядных, так и для 64-разрядных программ.Видишь http://msdn.microsoft.com/en-us/library/bb787181.aspx