Tools
CmdResc
CmdResc is a simple command line version of ModuleRescue tool.
StartDbg
StartDbg is a small tool that simplifies debugging of the startup code of services and COM server applications, even if they are running under non-administrative user accounts. In brief, it suspends the service or the COM server process for a predefined period of time, and allows us to attach debugger to the process while it is suspended. For additional information about the motivation behind creating this tool, take a look at this article.
ClrDump
ClrDump is a set of tools that allow to produce small minidumps of managed applications. In the past, it was necessary to use full dumps (very large in size) if you needed to perform post-mortem analysis of a .NET application. ClrDump can produce small minidumps that contain enough information to recover the call stacks of all threads in the application. It supports .NET runtime versions 1.1 and 2.0.
Batch files for CDB debugger
These batch files accompany WinDbg the Easy Way article. They hide the long and complicated CDB commands behind an easy to use interface, and allow the user to perform otherwise complex tasks quickly and conveniently.
SymGetEx
SymGetEx is an addition to Visual Studio 6.0, which allows Visual C++ debugger to automatically download symbols from symbol servers. With automatic symbol server support, it is easy to keep system symbols up-to-date, regardless of the number of system updates and hotfixes installed on the computer. In turn, good symbols for system DLLs help you get complete and informative call stacks when debugging your applications.
ModuleRescue
ModuleRescue can generate executable modules (.EXEs and .DLLs) from the module information stored in minidumps. The modules produced by the application are enough to let debuggers download symbols from the symbol server even if the real matching module is not available. It is useful in the situation when, while debugging a minidump, we cannot find matching module but know that symbols for the module are available on the symbol server. ModuleRescue can be also used to view the list of modules loaded by the application at the time when the minidump was created, and analyze such information as module load address, file and product version, availability of debug information.
MiniDumpView
MiniDumpView utility reads the contents of a minidump and displays detailed information about every available data stream.
MiniDump Wizard
MiniDump Wizard application allows to experiment with MiniDumpWriteDump and MiniDumpCallback functions without writing code. It is possible to specify a combination of MINIDUMP_TYPE flags that will be passed to MiniDumpWriteDump function, and it is possible to respond to MiniDumpCallback calls in a series of dialogs.
ChkMatch
ChkMatch can be used to check whether an executable and debug information file match. It can also be used to enforce matching between an executable and debug information file, if they are compatible.
For more information about debug information matching and related issues, see this article.
SymGet
SymGet can be used to download symbol files from symbol servers.
It is easy to use and configure, and it allows to download symbol files into flat directory structure (useful when we have to download system symbols for use with Visual C++ 6.0 debugger; other similar tools like SymChk download symbols into more complex directory structure that requires additional steps to make symbol files accessible for Visual C++ 6.0).
TypeInfoDump
This is an accompanying example for How to use DbgHelp to access type information article. It reads debug information for an executable specified by the user, and shows the exact type of every variable or function, as well as other interesting information.