Troubleshooting High CPU Hangs with a Debugger
Updated: August 22, 2005
Applies To: Windows Server 2003, Windows Server 2003 with SP1
An application that becomes unresponsive to any kind of request while the process hosting the application is consuming a great deal of system processor(s) CPU time, usually near 100%, is in a high CPU hang state. This problem can be caused by an endless loop in script code or by some other intensive kind of processing.
In such a case, it is useful to identify the thread that is consuming the CPU before you attempt to capture a memory dump. To identify the offending thread, you can use a tool like QSlice.exe. For information about QSlice.exe, in Help and Support Center for Windows Server 2003, click Tools, and then click Windows Support Tools. Alternatively, you can check the .log file that is generated by the Adplus.vbs script. This log file contains output generated by the !runaway debugger command. The !runaway command lists the CPU consumption times of the various running threads. For information about debugging and the debugger commands, see Debugging Tools for Windows Help.
To capture a memory dump, at a command prompt, type the following: C:\debuggers\> cscript.exe adplus.vbs -hang -p PID