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:
|
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