Должен ли я написать свой собственный аварийный дамп через отдельный процесс или положиться на WER?

На данный момент моя информация (и давайте сохраним контекст для Windows-7, так как WER не работает так на Win-XP), что у меня есть два способа получить полный дамп сбоя памяти для моего приложения:

Я могу настроить WER для создания локального полного дампа памяти моего приложения

Информация здесь: http://msdn.microsoft.com/en-us/library/bb787181%28v=vs.85%29.aspx

  • Добавить (также для 32-битных приложений. не использовать узел SysWow64) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps ключ (возможно, конкретный раздел приложения ...LocalDumps\MyApplication.exe)
  • Задавать DumpType до 2.
  • Настройте другие параметры как необходимые

Примечание. Поскольку наше приложение развернуто по своему усмотрению, установка этого значения реестра не является проблемой.

Это, кажется, дает мне довольно надежные аварийные дампы с простым демонстрационным приложением.

Или, я могу сам создать дамп написав — правильно с сторожевым процессом и все

я использую MiniDumpWriteDump написать дамп, и я делаю это из сторожевого процесса (как описано Вот, Вот) минимизировать риск отказа.

Итак, какой подход лучше? Учитывая, что, когда я делаю это сам, я предусмотрительно сохраняю то, что я делаю в обработчике аварийного отказа, до абсолютного минимума, меня интересует, насколько надежен подход WER, или же подход WER выполняет в процессе еще несколько вещей, которые
может потерпеть неудачу. Есть идеи / опыт?

2

Решение

В качестве альтернативы сделать это самостоятельно, вы можете посмотреть в Google Breakpad, Это библиотека и набор инструментов для генерации и обработки аварийных дампов.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]