Debugging Tools for Windows

Analyze a Running Process

Use the following commands to record and analyze the heap memory allocations in a running process. This analysis focuses on stack traces.

Syntax

umdh -p:PID [-f:LogFile] [-v[:MsgFile]] | [-g] | [-h]

Parameters

-p:PID
Specifies the process to analyze. PID is the process ID of the process. This parameter is required.

To find the PID of a running process, use Task Manager, Tasklist (Windows XP and later operating systems), or TList.

-f:LogFile
Saves the log contents in a text file. By default, UMDH writes the log to stdout (command window).

LogFile specifies the path (optional) and name of the file. If you specify an existing file, UMDH overwrites the file.

Note  If a process was not started in Administrator mode, or attempts to write to “protected” paths, it will be denied.

-v[:MsgFile ]
Verbose mode. Generates detailed informational and error messages. By default, UMDH writes these messages to stderr.

MsgFile specifies the path (optional) and name of a text file. When you use this variable, UMDH writes the verbose messages to the specified file, instead of to stderr. If you specify an existing file, UMDH overwrites the file.

-g
Logs the heap blocks that are not referenced by the process ("garbage collection").
-h
Displays help.

Comments

On Windows 2000, if UMDH is reporting errors finding the stack trace database, and you have enabled the Create user mode stack trace database option in GFlags, you might have a symbol file conflict. To resolve it, copy the DBG and PDB symbol files for the application to the same directory, and try again.

Sample Usage

umdh -?
umdh -p:2230
umdh -p:2230  -f:dump_allocations.txt
umdh -p:2230 -f:c:\Log1.txt -v:c:\Msg1.txt
umdh -p:2230 -g -f:garbage.txt

Build machine: CAPEBUILD