Назад | Перейти на главную страницу

Отчеты об ошибках Windows дампы VS procdump.exe

Может ли кто-нибудь уточнить, совпадают ли дампы памяти, создаваемые WER, с созданными procdump.exe? Могут ли два этих инструмента конфликтовать при одновременном использовании? Какой будет правильный подход, если моей целью является устранение неполадок типа события «служба неожиданно завершена» для службы (на платформе Server 2012 R2)?

И procdump, и WER хороши для захвата аварийных дампов пользовательского режима при сбое приложения.

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

WER по умолчанию захватывает мини-дампы, но это можно настроить захватывать полные дампы.

(Когда я говорю «полный дамп» в этом контексте, я имею в виду полное адресное пространство процесса пользовательского режима рассматриваемого процесса - все, что находится в режиме ядра, выходит за рамки.)

procdump.exe, с другой стороны, представляет собой инструмент Sysinternals (Марк Руссинович, Эндрю Ричардс и др.), который гораздо более гибкий, чем WER. Если WER был ножом для масла, то procdump - это швейцарский армейский нож. Например, procdump.exe можно настроить для автоматического создания дампа (или серии дампов), когда процесс остается> 90% использования ЦП в течение 10 секунд или> 500 МБ использования памяти и т. Д. И т. Д. Также можно настроить procdump. как ваш постоянный посмертный отладчик AeDebug, что фактически делает его заменой WER на тот момент.

WER работает достаточно хорошо (особенно когда настроен на захват полных дампов процессов), и WER и procdump захватывают один и тот же дамп, но вам нужен только один или другой. На самом деле нет никакого смысла пытаться использовать их оба.

procdump -ma -i C:\Dumps настраивает procdump.exe на автоматическое выполнение полного дампа памяти процесса каждый раз при сбое процесса пользовательского режима на компьютере и помещает его в каталог C: \ Dumps.

Это также приведет к сбою службы Windows, если разработчик службы специально не написал службу, чтобы выполнять свою собственную обработку исключений и избегать попадания в отладчики, что довольно редко. (И даже тогда procdump можно настроить для сброса при первом же исключении.)

PS: вы можете увидеть сообщение «служба неожиданно завершена», если служба действительно аварийно завершила работу, но вы также можете увидеть то же сообщение, если служба просто почувствовала, что ей нужно выйти, не сотрудничая с диспетчером служб, как это предполагалось. В этом случае разработчик сервиса был просто плохим разработчиком, и поскольку фактического сбоя не было, ни WER, ни procdump вам не помогут.