Dumps (previously called crash dumps) allow you to save native C++ program information and debug at a later time. This can be particularly useful if you are testing a program on a machine that does not have source files or PDBs. When a crash occurs, you can save a dump file and debug it later on the machine that has the source files and PDBs.
How To Create a Dump
If you have Just-In-Time debugging enabled, you can attach to a crashed process running outside the debugger, break, then save a dump file. (For details, see Saving and Opening Dump Files.)
In addition, Visual Studio can read dumps created by other dump generating tools such as Doctor Watson (Drwtsn32.exe), UserDump, or Autodump+ (AD+).
The Doctor Watson utility (Drwtsn32.exe) is installed in your system folder when you set up the Windows operating system.
UserDump is part of the OEM Support Tools package. You can download a copy from http://download.microsoft.com/download/win2000srv/Utility/3.0/NT45/EN-US/Oem3sr2.zip.
Autodump+ is part of Microsoft Debugging Tools for Windows. You can download a copy from http://www.microsoft.com/ddk/debugging.
Managed Code Information In Dumps
In Visual Studio .NET 2003, the debugger can read dump files that contain information on managed code, unmanaged code, or a mixture of both. For unmanaged code, you can use all the usual debugger windows to view dump information. For managed code, however, most of the debugger windows do not display dump information. Instead, you can display the debugging information in the Command window, using a tool called SOS. If your dump contains information on both managed and unmanaged code, you can go back and forth between the normal debugger windows and SOS debugging.
The following sections contain information related to debugging a dump:
- Dump Requirements and Limitations
- Saving and Opening Dump Files
- Dump Module Loading
- Specifying Additional Dump Module Search Paths
- Specifying Nonstandard File Extensions for Dump Modules
- Using SOS