26 out of 46 rated this helpful - Rate this topic

Collecting User-Mode Dumps

Starting with Windows Server 2008 and Windows Vista with Service Pack 1 (SP1), Windows Error Reporting (WER) can be configured so that full user-mode dumps are collected and stored locally after a user-mode application crashes. Applications that do their own custom crash reporting, including .NET applications, are not supported by this feature.

This feature is not enabled by default. Enabling the feature requires administrator privileges. To enable and configure the feature, use the following registry values under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps key.

ValueDescriptionTypeDefault value
DumpFolderThe 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
DumpCountThe 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_DWORD10
DumpTypeSpecify one of the following dump types:
  • 0: Custom dump
  • 1: Mini dump
  • 2: Full dump
REG_DWORD1
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_DWORDMiniDumpWithDataSegs | MiniDumpWithUnloadedModules | MiniDumpWithProcessThreadData.

 

These registry values represent the global settings. You can also provide per-application settings that override the global settings. To create a per-application setting, create a new key for your application under HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps (for example, HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps\MyApplication.exe). Add your dump settings under the MyApplication.exe key. If your application crashes, WER will first read the global settings, and then will override any of the settings with your application-specific settings.

After an application crashes and prior to its termination, the system will check the registry settings to determine whether a local dump is to be collected. After the dump collection has completed, the application will be allowed to terminate normally. If the application supports recovery, the local dump is collected before the recovery callback is called.

These dumps are configured and controlled independently of the rest of the WER infrastructure. You can make use of the local dump collection even if WER is disabled or if the user cancels WER reporting. The local dump can be different than the dump sent to Microsoft.

 

 

Send comments about this topic to Microsoft

Build date: 2/7/2012

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
WER is not affected by virtualization on 64 bit systems

Since the process that kept crashing ran as 32 bit application, I expected that the appropriate virtualized key was relevant:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps

However, it turned out that this is not the case. You need to modify the keys as described above - without selecting the Wow6432Node.
I had to log out and log in again before my changes had an effect, though.

Collecting User mode dumps in even if Windows Error reporting is disabled
http://sethusrinivasan.wordpress.com/2012/04/20/collecting-user-mode-dumps-in-even-if-windows-error-reporting-is-disabled/
Only works in .NET Framework 4.0 on Windows 7
For the managed .net applications. this feature only works in .NET Framework 4.0 on Windows 7,  won't work in .NET 3.5 and below.
.NET apps are supported by this feature
$0"Applications that do their own custom crash reporting, including .NET applications, are not supported by this feature"$0 $0$0 $0 Just in case you are wondering this feature does work for .NET apps... $0$0 $0 $0I think the tech writer could improve the wording - on first reading it can sound like .NET apps do not support this feature, as opposed to .NET apps which do their own custom crash reporting.$0 $0