На данный момент моя информация (и давайте сохраним контекст для Windows-7, так как WER не работает так на Win-XP), что у меня есть два способа получить полный дамп сбоя памяти для моего приложения:
Информация здесь: http://msdn.microsoft.com/en-us/library/bb787181%28v=vs.85%29.aspx
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
ключ (возможно, конкретный раздел приложения ...LocalDumps\MyApplication.exe
)DumpType
до 2.Примечание. Поскольку наше приложение развернуто по своему усмотрению, установка этого значения реестра не является проблемой.
Это, кажется, дает мне довольно надежные аварийные дампы с простым демонстрационным приложением.
я использую MiniDumpWriteDump
написать дамп, и я делаю это из сторожевого процесса (как описано Вот, Вот) минимизировать риск отказа.
Итак, какой подход лучше? Учитывая, что, когда я делаю это сам, я предусмотрительно сохраняю то, что я делаю в обработчике аварийного отказа, до абсолютного минимума, меня интересует, насколько надежен подход WER, или же подход WER выполняет в процессе еще несколько вещей, которые
может потерпеть неудачу. Есть идеи / опыт?
В качестве альтернативы сделать это самостоятельно, вы можете посмотреть в Google Breakpad, Это библиотека и набор инструментов для генерации и обработки аварийных дампов.
Других решений пока нет …