ProcessSnapshot is a utility to take a snapshot of process call stacks, and the snapshot taken is written into a human friendly text file.
Additionally to this, the utility has been given a capability to create process minidump files, on user request. The minidump files can be used with debugger to analyze the context of the process using feature rich debug environment, esp. Microsoft Visual Studio. To create a minidump for a process, check a corresponding box and press “Take a Dump” button. A file named “<process-image-name> – <date> <time>.dmp” will be created in the directory of the utility executable.
- Minidump Files (MSDN)
- How to read the small memory dump files that Windows creates for debugging
- Post-Mortem Debugging Your Application with Minidumps and Visual Studio .NET
- How to View Windows Minidump Files
A binary [Win32, x64] and partial Visual C++ .NET 2008 source code are available from SVN.
4 Replies to “ProcessSnapshot: Create process minidump for port-mortem debugging”
Where is the source for all the Alax.Info files? (ro*.h)
I couldn’t find this in Trac.
These files are not published.
The top level code for reference (API used and what exactly is being done etc) is there:
http://trac2.assembla.com/roatl-utilities/browser/trunk/ProcessSnapshot/MainDialog.h or http://www.assembla.com/code/roatl-utilities/subversion/nodes/trunk/ProcessSnapshot/MainDialog.h
The binary is also there http://www.assembla.com/code/roatl-utilities/subversion/nodes/trunk/ProcessSnapshot/Release/ProcessSnapshot.exe and this is what is available online.
Update: added x64 version of the utility.
Update: SRWLock-free version for Windows XP and earlier operating systems compatibility.