Como gerar user mode dumps com o WER desactivado

A partir de 2008/Vista SP1 o Windows Error Reporting pode ser  configurado para se obter Full User-mode dumps quando uma aplicação (user mode) termina de forma inesperada.

Mesmo com o WER desactivado, ou mesmo o utilizador cancelando o processo de WER, é possível gerarmos localmente um user mode dump. Neste post vamos ver como isso pode ser feito.

Esta funcionalidade não está activada “by default” e requer privilégios administrativos para o fazer.

Para activar e configurar esta funcionalidade vamos usar a seguinte chave de registo:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps

 

Estas são as opções de configuração:

Value

Description

Type

Default value

DumpFolder

The path where the dump files are to be stored. If  you do not use the default path, then make sure that the folder contains ACLs  that allow the crashing process to write data to the folder.

For service crashes, the dump is written to service  specific profile folders depending on the service account used. For example,  the profile folder for System services is  %WINDIR%\System32\Config\SystemProfile. For Network and Local Services, the  folder is %WINDIR%\ServiceProfiles.

REG_EXPAND_SZ

%LOCALAPPDATA%\CrashDumps

DumpCount

The maximum number of dump files in the folder. When  the maximum value is exceeded, the oldest dump file in the folder will be  replaced with the new dump file.

REG_DWORD

10

DumpType

Specify one of the following dump types:

  •   0: Custom dump
  •   1: Mini dump
  •   2: Full dump

REG_DWORD

1

CustomDumpFlags

The custom dump options to be used. This value is  used only when DumpType is set to 0.

The options are a bitwise combination of the MINIDUMP_TYPE enumeration values.

REG_DWORD

MiniDumpWithDataSegs | MiniDumpWithUnloadedModules |  MiniDumpWithProcessThreadData.

Estas são configurações globais pelo que se pode configurar definições por-aplicação, por exemplo:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps\AMinhaAplicação.exe

Se AMinhaAplicação.exe crashar o WER vai primeiro verificar as definições globais e de seguida sobrepor com as definições especificas para a aplicação.

Notas adicionais:

Aplicações que tenham o seu próprio mecanismo de error reporting (por exemplo aplicações .NET) não são suportadas nesta funcionalidade. Também convém não esquecer de criar a pasta %LOCALAPPDATA%\CrashDumps

Este é um exemplo de configuração, basta copiar para o notepad e gravar como *.reg e executar na máquina em questão:

=============================

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]

"DumpCount"=dword:00000100

"DumpType"=dword:00000002

"DumpFolder"=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,\

  00,41,00,54,00,41,00,25,00,5c,00,43,00,72,00,61,00,73,00,68,00,44,00,75,00,\

 
6d,00,70,00,73,00,00,00

=============================

Artigo msdn associado:

https://msdn.microsoft.com/en-us/library/bb787181.aspx

Boa leitura,

AL