<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Brad Rutkowski's Blog : Debugging</title><link>http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx</link><description>Tags: Debugging</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Some useful debugging commands</title><link>http://blogs.technet.com/brad_rutkowski/archive/2008/04/01/some-useful-debugging-commands.aspx</link><pubDate>Wed, 02 Apr 2008 00:47:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3025719</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/3025719.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=3025719</wfw:commentRss><description>&lt;P&gt;All of these are for kernel mode, these are just commands I use often that don't troubleshoot a particular problem, but are helpful in getting a general picture of the system.&amp;nbsp; If you have a specific issue you're trying to understand, drop a note and I'll see if there is a command to help you out.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Vertarget:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Lists Version information for the machine/dump you're debugging.&amp;nbsp; You can also use "version" to tell you about the debugger bits.&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;1: kd&amp;gt; vertarget &lt;BR&gt;Windows Kernel Version 6001 (Service Pack 1) MP (4 procs) Free x64 &lt;BR&gt;Product: LanManNt, suite: TerminalServer SingleUserTS &lt;BR&gt;Built by: 6001.18000.amd64fre.longhorn_rtm.080118-1840 &lt;BR&gt;Kernel base = 0xfffff800`0160c000 PsLoadedModuleList = 0xfffff800`017d1db0 &lt;BR&gt;Debug session time: Tue Apr&amp;nbsp; 1 14:29:22.553 2008 (GMT-7) &lt;BR&gt;System Uptime: 0 days 0:03:14.328&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;!sysinfo&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Good utility to check the CPU revs, BIOS revs, etc&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;1: kd&amp;gt; !sysinfo machineid &lt;BR&gt;Machine ID Information [From Smbios 2.3, DMIVersion 35, Size=3752] &lt;BR&gt;BiosVendor = American Megatrends Inc. &lt;BR&gt;BiosVersion = 080002 &lt;BR&gt;BiosReleaseDate = 10/01/2007 &lt;BR&gt;SystemManufacturer = Microsoft Corporation &lt;BR&gt;SystemProductName = Virtual Machine &lt;BR&gt;SystemVersion = 5.0 &lt;BR&gt;BaseBoardManufacturer = Microsoft Corporation &lt;BR&gt;BaseBoardProduct = Virtual Machine &lt;BR&gt;BaseBoardVersion = 5.0&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;1: kd&amp;gt; !sysinfo cpuinfo &lt;BR&gt;[CPU Information] &lt;BR&gt;~MHz = REG_DWORD 2660 &lt;BR&gt;Component Information = REG_BINARY 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 &lt;BR&gt;Configuration Data = REG_FULL_RESOURCE_DESCRIPTOR ff,ff,ff,ff,ff,ff,ff,ff,0,0,0,0,0,0,0,0 &lt;BR&gt;Identifier = REG_SZ Intel64 Family 6 Model 15 Stepping 6 &lt;BR&gt;ProcessorNameString = REG_SZ Intel(R) Xeon(R) CPU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5150&amp;nbsp; @ 2.66GHz &lt;BR&gt;Update Signature = REG_BINARY 0,0,0,0,0,0,0,0 &lt;BR&gt;Update Status = REG_DWORD 8 &lt;BR&gt;VendorIdentifier = REG_SZ GenuineIntel &lt;BR&gt;MSR8B = REG_QWORD 0&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Getting the server name from the dump:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;It's quite a bit easier to do internally, but this will get it done too.&amp;nbsp; Good to know you're debugging the right server. :)&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;1: kd&amp;gt; x srv!SrvComputerName &lt;BR&gt;fffffa60`04024500 srv!SrvComputerName = &amp;lt;no type information&amp;gt; &lt;BR&gt;1: kd&amp;gt; dq fffffa60`04024500 &lt;BR&gt;fffffa60`04024500&amp;nbsp; 00000000`00180018 fffff880`04ccd8c0 &lt;BR&gt;fffffa60`04024510&amp;nbsp; 00000000`00000000 00000000`00000000 &lt;BR&gt;fffffa60`04024520&amp;nbsp; 00000000`00000000 00000000`00000000 &lt;BR&gt;fffffa60`04024530&amp;nbsp; 00000000`000c000a fffff880`04a0fc60 &lt;BR&gt;fffffa60`04024540&amp;nbsp; fffffa60`04024540 fffffa60`04024540 &lt;BR&gt;fffffa60`04024550&amp;nbsp; 00000000`00060001 fffffa60`04024558 &lt;BR&gt;fffffa60`04024560&amp;nbsp; fffffa60`04024558 00000000`ffffffff &lt;BR&gt;fffffa60`04024570&amp;nbsp; 00000000`00000000 00000000`00000000 &lt;BR&gt;1: kd&amp;gt; du fffff880`04ccd8c0 &lt;BR&gt;fffff880`04ccd8c0&amp;nbsp; "BRAD-LHDC-01?"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;!running -ti&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This will dump the stacks of each thread that is running on each processor&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;1: kd&amp;gt; !running -ti &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;System Processors f (affinity mask) &lt;BR&gt;&amp;nbsp; Idle Processors f &lt;BR&gt;All processors idle. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Prcb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Current&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next &lt;BR&gt;&amp;nbsp; 0&amp;nbsp; fffff80001780680&amp;nbsp; fffff80001785b80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ................ &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Child-SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RetAddr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call Site &lt;BR&gt;fffff800`026bb8d0 fffffa60`00a066da nt!KeSetTimer+0x89 &lt;BR&gt;fffff800`026bb920 fffffa60`00a06aca NETIO!WfpStartTimerForLeftTime+0x8a &lt;BR&gt;fffff800`026bb970 fffffa60`00a06585 NETIO!WfppLeastRecentlyUsedTimerRoutine+0x1aa &lt;BR&gt;fffff800`026bb9c0 fffffa60`00a067ff NETIO!WfpTimerWheelTimeoutHandler+0x175 &lt;BR&gt;fffff800`026bba40 fffff800`016698b3 NETIO!WfpSysTimerNdisCallback+0x4f &lt;BR&gt;fffff800`026bba70 fffff800`0166a238 nt!KiTimerListExpire+0x333 &lt;BR&gt;fffff800`026bbca0 fffff800`0166aa9f nt!KiTimerExpiration+0x1d8 &lt;BR&gt;fffff800`026bbd10 fffff800`0166bb72 nt!KiRetireDpcList+0x1df &lt;BR&gt;fffff800`026bbd80 fffff800`018395c0 nt!KiIdleLoop+0x62 &lt;BR&gt;fffff800`026bbdb0 00000000`fffff800 nt!zzz_AsmCodeRange_End+0x4 &lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&amp;nbsp; 1&amp;nbsp; fffffa60005f3180&amp;nbsp; fffffa60005fcd40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ................ &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Child-SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RetAddr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call Site &lt;BR&gt;fffffa60`0171bb08 fffff800`016b03d7 nt!RtlpBreakWithStatusInstruction &lt;BR&gt;fffffa60`0171bb10 fffff800`0165afef nt! ?? ::FNODOBFM::`string'+0x356a &lt;BR&gt;fffffa60`0171bb50 fffffa60`026867a2 nt!KiSecondaryClockInterrupt+0x11f &lt;BR&gt;fffffa60`0171bce8 fffffa60`02685685 intelppm!C1Halt+0x2 &lt;BR&gt;fffffa60`0171bcf0 fffff800`0167c7c8 intelppm!C1Idle+0x9 &lt;BR&gt;fffffa60`0171bd20 fffff800`0166bb31 nt!PoIdle+0x148 &lt;BR&gt;fffffa60`0171bd80 fffff800`018395c0 nt!KiIdleLoop+0x21 &lt;BR&gt;fffffa60`0171bdb0 00000000`fffffa60 nt!zzz_AsmCodeRange_End+0x4&lt;/FONT&gt; &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;!stacks&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This is a great utility to check what threads are waiting on for each process.&amp;nbsp; Find out more in the debuggers chm.&lt;/P&gt;
&lt;P&gt;&lt;FONT face=cour size=1&gt;1: kd&amp;gt; !stacks 2 &lt;BR&gt;Proc.Thread&amp;nbsp; .Thread&amp;nbsp; Ticks&amp;nbsp;&amp;nbsp; ThreadState Blocker &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=cour size=1&gt;Max cache size is&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 1048576 bytes (0x400 KB) &lt;BR&gt;Total memory in cache&amp;nbsp;&amp;nbsp; : 0 bytes (0 KB) &lt;BR&gt;Number of regions cached: 0 &lt;BR&gt;0 full reads broken into 0 partial reads &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; counts: 0 cached/0 uncached, 0.00% cached &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bytes : 0 cached/0 uncached, 0.00% cached &lt;BR&gt;** Prototype PTEs are implicitly decoded &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [fffffa8000c77950 System] &lt;BR&gt;&amp;nbsp;&amp;nbsp; 4.000008&amp;nbsp; fffffa8000c774c0 ffffe94b GATEWAIT&amp;nbsp;&amp;nbsp; nt!KiSwapContext+0x7f &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!KiSwapThread+0x2fa &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!KeWaitForGate+0x22a &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!MmZeroPageThread+0x162 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!Phase1Initialization+0xe &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!PspSystemThreadStartup+0x57 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!KiStartSystemThread+0x16 &lt;BR&gt;&amp;nbsp;&amp;nbsp; 4.000010&amp;nbsp; fffffa8000ca0720 ffffff8c Blocked&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!KiSwapContext+0x7f &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!KiSwapThread+0x2fa &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!KeWaitForSingleObject+0x2da &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!PopIrpWorkerControl+0x22 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!PspSystemThreadStartup+0x57 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!KiStartSystemThread+0x16 &lt;BR&gt;&amp;nbsp;&amp;nbsp; 4.000014&amp;nbsp; fffffa8000c78bb0 fffffcb0 Blocked&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!KiSwapContext+0x7f &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!KiSwapThread+0x2fa &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!KeWaitForSingleObject+0x2da &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!PopIrpWorker+0x164 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!PspSystemThreadStartup+0x57 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nt!KiStartSystemThread+0x16&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=cour size=1&gt;&amp;lt;SNIP&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;!PCR&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Command will show you some useful info from the processor control block.&amp;nbsp; Like the current thread, next, DPQ queues (Can run !dpcs).&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;1: kd&amp;gt; !pcr &lt;BR&gt;KPCR for Processor 1 at fffffa60005f3000: &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Major 1 Minor 1 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.ExceptionList: fffffa60005fd280 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.StackBase: fffffa60005f6cc0 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.StackLimit: 000000000554f578 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.SubSystemTib: fffffa60005f3000 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.Version: 00000000005f3180 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.UserPointer: fffffa60005f37f0 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.SelfTib: 000007fffff8a000 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SelfPcr: 0000000000000000 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Prcb: fffffa60005f3180 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Irql: 0000000000000000 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRR: 0000000000000000 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDR: 0000000000000000 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InterruptMode: 0000000000000000 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDT: 0000000000000000 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GDT: 0000000000000000 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TSS: 0000000000000000 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CurrentThread: fffffa60005fcd40 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NextThread: 0000000000000000 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IdleThread: fffffa60005fcd40 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DpcQueue:&amp;nbsp; 0xfffffa800124dc70 0xfffffa6000e7abe0 [Normal] tcpip!TcpPeriodicTimeoutHandler &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;1: kd&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;!LMI &amp;lt;driver&amp;gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;When I want to find out ifno about a particular driver in the dump, i use "lm n t" to get all of them, but then !lmi to drill into one.&amp;nbsp; I use it quite often to see if I have the private or public symbol loaded&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;1: kd&amp;gt; !lmi srv.sys &lt;BR&gt;Loaded Module Info: [srv.sys] &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Module: srv &lt;BR&gt;&amp;nbsp;&amp;nbsp; Base Address: fffffa6004007000 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Image Name: srv.sys &lt;BR&gt;&amp;nbsp;&amp;nbsp; Machine Type: 34404 (X64) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Time Stamp: 47919135 Fri Jan 18 21:57:09 2008 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Size: 94000 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckSum: 70fe5 &lt;BR&gt;Characteristics: 22&amp;nbsp; perf &lt;BR&gt;Debug Data Dirs: Type&amp;nbsp; Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VA&amp;nbsp; Pointer &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CODEVIEW&amp;nbsp;&amp;nbsp;&amp;nbsp; 20, 142c8,&amp;nbsp;&amp;nbsp; 136c8 RSDS - GUID: {D3FD3BA3-615D-437E-83B9-D339ED15DEE3} &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Age: 2, Pdb: srv.pdb &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLSID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4, 142c4,&amp;nbsp;&amp;nbsp; 136c4 [Data not mapped] &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Image Type: MEMORY&amp;nbsp;&amp;nbsp; - Image read successfully from loaded memory. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Symbol Type: PDB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Symbols loaded successfully from symbol server. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C:\Debugger_Public\sym\srv.pdb\D3FD3BA3615D437E83B9D339ED15DEE32\srv.pdb &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Load Report: &lt;STRONG&gt;public symbols , not source indexed&lt;/STRONG&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C:\Debugger_Public\sym\srv.pdb\D3FD3BA3615D437E83B9D339ED15DEE32\srv.pdb&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3025719" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx">Business up front</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Cool+Tools/default.aspx">Cool Tools</category></item><item><title>Dial in your debugging skills with this book.</title><link>http://blogs.technet.com/brad_rutkowski/archive/2008/01/25/dial-in-your-debugging-skills-with-this-book.aspx</link><pubDate>Fri, 25 Jan 2008 04:15:57 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2778074</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/2778074.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=2778074</wfw:commentRss><description>&lt;p&gt;So &lt;a title="Advanced Windows Debugging" href="http://www.amazon.com/Advanced-Debugging-Addison-Wesley-Microsoft-Technology/dp/0321374460/ref=pd_bbs_3?ie=UTF8&amp;amp;s=books&amp;amp;qid=1201133827&amp;amp;sr=8-3" target="_blank"&gt;this book&lt;/a&gt; has been getting mentioned around by a lot of reputable contacts internally so my teammate picked up a couple copies and I've been browsing it since. Browsing? Like all books in this category (Windows Internals, C++ Programming, etc) I don't read it cover to cover, if you do you should earn a merit badge.&amp;#160; &lt;/p&gt;  &lt;p&gt;I've noticed that when I run into a situation, like a memory leak or server hung and have exhausted all I can think of, I picked up this book and learned a few new tricks which came in handy (!address -summary).&amp;#160; This happened a few times and then the book became the first place I checked when running into a situation I had not&amp;#160; debugged very often or ever.&lt;/p&gt;  &lt;p&gt;For example one &amp;quot;trick&amp;quot; they tell you about early on is when you have a usermode debug session piped to kernel (ntsd -d), but for whatever reason you cant use .breakin to get into the kernel from the user mode debug session.&amp;#160; They mention using .sleep 1000 to sleep the user mode debugger and then you can use ctrl+c to break into kernel and snoop around, when you're done snooping around, g the remote and then sleep command will complete and you'll fall back into the user mode remote.&amp;#160; (If this doesn't make sense well get this book then!).&lt;/p&gt;  &lt;p&gt;It's tidbits of information like this and solid debugging skills that come from years on the job and can be found in this book.&amp;#160; If you want to get into debugging, or have been been debugging for a while and want to learn new techniques, this is a great find.&amp;#160; All in all if you debug either user mode or kernel mode, you're going to find some great information in this book. &lt;/p&gt;  &lt;p&gt;The only other book I use frequently on the job is the &lt;a title="Winternal" href="http://www.amazon.com/Microsoft-Windows-Internals-Fourth-Pro-Developer/dp/0735619174" target="_blank"&gt;Windows Internals&lt;/a&gt; book that most of you know and love (excluding the debugger.chm file).&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I get no kick backs for my recommendation, I just like the book and I'm sure to fine more gems as I continue to run into issues.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:459eb0e6-bd8e-4aa4-bcd8-4241597ba9a4" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows" rel="tag"&gt;Windows&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Debugging" rel="tag"&gt;Debugging&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2778074" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx">Business up front</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category></item><item><title>These are a few of my favorite things... (Part 4)</title><link>http://blogs.technet.com/brad_rutkowski/archive/2007/11/21/these-are-a-few-of-my-favorite-things-part-4.aspx</link><pubDate>Thu, 22 Nov 2007 02:09:02 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2540707</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/2540707.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=2540707</wfw:commentRss><description>&lt;p&gt;Just some more tricks/tools I use frequently...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Scale-to-Fit in Perfmon&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you deal a lot with perfmon you know you can have a ton of different counters in one line graph or in one bar graph and that the scale is usually 0-100 which really isn't applicable in some cases.&amp;nbsp; Now you can just alt click the graph and select "Scale selected counter" which will then fit them all in one graph.&amp;nbsp; As an aside, you can also just drag in perfmon collections (.html, .blg, .csv, or .tsv)into the MMC now and have the data displayed.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Handle.exe&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Need to know what process/user is holding a file open on your server?&amp;nbsp; Use Handle:&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;C:\&amp;gt;handle -u S:\Public\UserA\DCChkWeb\dcchk_default_new.htm &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;dcChk.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pid: 7440&amp;nbsp;&amp;nbsp; BRADDOM\userb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S:\Public\UserA\DCChkWeb\dcchk_default_new.htm&lt;/font&gt;  &lt;p&gt;Need to know what type of handles a particular process has open?&amp;nbsp; Use Handle:  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;C:\Users\UserB\Desktop&amp;gt;handle.exe -p 620 -s &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Handle type summary:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 52&lt;br&gt;&amp;nbsp; Desktop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 1&lt;br&gt;&amp;nbsp; Directory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 2&lt;br&gt;&amp;nbsp; Event&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 6229&lt;br&gt;&amp;nbsp; File&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 3210&lt;br&gt;&amp;nbsp; IoCompletion&amp;nbsp;&amp;nbsp;&amp;nbsp; : 17&lt;br&gt;&amp;nbsp; Key&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 150&lt;br&gt;&amp;nbsp; KeyedEvent&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 2&lt;br&gt;&amp;nbsp; Mutant&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 10&lt;br&gt;&amp;nbsp; Process&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 58&lt;br&gt;&amp;nbsp; Process&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 94&lt;br&gt;&amp;nbsp; Section&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 12&lt;br&gt;&amp;nbsp; Semaphore&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 6169&lt;br&gt;&amp;nbsp; Thread&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 630&lt;br&gt;&amp;nbsp; Timer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 8&lt;br&gt;&amp;nbsp; Token&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 4927&lt;br&gt;&amp;nbsp; TpWorkerFactory : 2&lt;br&gt;&amp;nbsp; WindowStation&amp;nbsp;&amp;nbsp; : 2&lt;br&gt;Total handles: 21575&lt;/font&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Tlist.exe&lt;/u&gt;&lt;/strong&gt;  &lt;p&gt;Great tool to dump all the processes running on your system.&amp;nbsp; &lt;p&gt;Two main arguments I use with Tlist:  &lt;p&gt;"-v" to dump the verbose output which will show the arguments that were passed to the process:  &lt;blockquote&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;2 32 5116 AcroRd32.exe&amp;nbsp;&amp;nbsp;&amp;nbsp; Title: sw&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Command Line: "C:\Program Files (x86)\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" /o /eo /l&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;"-s" to dump what services run in each process.&amp;nbsp; As you probably know a lot of services are just called with "svchost -netsvcs" so how do you knwo which one WINMGMT lives in?&amp;nbsp; Use -s.  &lt;blockquote&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;C:\localbin&amp;gt;tlist -s&lt;br&gt;&amp;nbsp;&amp;nbsp; 0 System Process&lt;br&gt;&amp;nbsp;&amp;nbsp; 4 System&lt;br&gt;460 smss.exe&lt;br&gt;548 csrss.exe&lt;br&gt;580 wininit.exe&lt;br&gt;632 services.exe&lt;br&gt;652 lsass.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Svcs:&amp;nbsp; KeyIso,Netlogon,ProtectedStorage,SamSs&lt;br&gt;660 lsm.exe&lt;br&gt;808 svchost.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Svcs:&amp;nbsp; DcomLaunch,PlugPlay&lt;br&gt;916 svchost.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Svcs:&amp;nbsp; RpcSs&lt;br&gt;988 svchost.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Svcs:&amp;nbsp; WinDefend&lt;br&gt;408 svchost.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Svcs:&amp;nbsp; AudioSrv,Dhcp,Eventlog,lmhosts,p2pimsvc,wscsvc&lt;br&gt;512 svchost.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Svcs:&amp;nbsp; AudioEndpointBuilder,CscService,EMDMgmt,Netman,PcaSvc,SysMain,TrkWks,UmRdpService,UxSms,WdiSystemHost,WPDBusEnum,wudfsvc&lt;br&gt;540 svchost.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Svcs:&amp;nbsp; AeLookupSvc,BITS,CertPropSvc,gpsvc,hkmsvc,IKEEXT,iphlpsvc,LanmanServer,MMCSS,ProfSvc,RasMan,Schedule,seclogon,SENS,SessionEnv,ShellHWDetection,Themes,Winmgmt,wuauserv&lt;br&gt;796 audiodg.exe&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;SNIP&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;SPLInfo.exe&lt;/u&gt;&lt;/strong&gt;  &lt;p&gt;SplInfo is a command-line tool that collects information from the print spooler and displays it.  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;C:\Localbin&amp;gt;splinfo &lt;/font&gt;&lt;a href="file://\\prn-machine"&gt;&lt;font face="Courier New" size="2"&gt;\\prn-machine&lt;/font&gt;&lt;/a&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Number Remote Printers&amp;nbsp; 490 on &lt;/font&gt;&lt;a href="file://\\prn-machine"&gt;&lt;font face="Courier New" size="2"&gt;\\prn-machine&lt;/font&gt;&lt;/a&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Windows Version&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.0 Build 6001 (Service Pack 1, v.275) FREE&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Number of Processors&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 PROCESSOR_INTEL Level 6&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Total Jobs Spooled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3,650&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Total Bytes Printed&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7,243,275,903&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Total GDI Pages Printed 11,690&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Average Bytes/Job&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,984,459&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Average Pages/Job&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Average Bytes/Page&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 619,612&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Browse List Requested&amp;nbsp;&amp;nbsp; 0&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Browse Printer Added&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Queues with Jobs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;# Queues with # Jobs:&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 114&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Spooler Up Time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 Day 21:46:46&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Server Up Time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22 Days 05:48:32&lt;/font&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9c7dad10-5f87-4208-9d20-ef2d62d39b3e" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/Vista" rel="tag"&gt;Vista&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Longhorn" rel="tag"&gt;Longhorn&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Windows%202008" rel="tag"&gt;Windows 2008&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2540707" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx">Business up front</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Cool+Tools/default.aspx">Cool Tools</category></item><item><title>Got a handle leak?  Use !Htrace to help find the leaking stacks non-invasively.</title><link>http://blogs.technet.com/brad_rutkowski/archive/2007/11/13/got-a-handle-leak-use-htrace-to-help-find-the-leaking-stacks-non-invasively.aspx</link><pubDate>Tue, 13 Nov 2007 21:10:57 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2435125</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/2435125.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=2435125</wfw:commentRss><description>&lt;p&gt;So when your an app developer or someone in my position where you need to track down memory leaks one of the tools to use is Htrace once you've &lt;a title="Spat!" href="http://blogs.msdn.com/spatdsg/archive/2005/03/23/401020.aspx" target="_blank"&gt;identified it's a handle leak&lt;/a&gt;.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I just wanted to put this post out there to show that I found you can use Htrace against a usermode process like LSASS below without being invasive!&amp;nbsp; This was pretty critical in this scenario as the print server below was clustered and if we broke into LSASS via KD, the resources would have failed over to the passive node.&amp;nbsp; Of course, I'm making no guarantees, but Htrace worked for me non-invasively below, your mileage may vary.&lt;/p&gt; &lt;p&gt;More about non-invasive debugging in a previous post &lt;a title="Non-invasive debugging" href="http://blogs.technet.com/brad_rutkowski/archive/2007/04/13/did-you-know-there-is-live-noninvasive-debugging.aspx" target="_blank"&gt;here&lt;/a&gt;.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Before using Htrace you need to use application verifier to track handles for you for whatever process is leaking.&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;C:\&amp;gt;cdb -p 708 -pvr -y &lt;/font&gt;&lt;a href="http://msdl.microsoft.com/download/symbols"&gt;&lt;font face="Courier New" size="2"&gt;http://msdl.microsoft.com/download/symbols&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&lt;font color="#ff0000"&gt;//Using PVR to be non-invasive for LSASS.&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Microsoft (R) Windows Debugger Version 6.8.0003.0 X86&lt;br&gt;Copyright (c) Microsoft Corporation. All rights reserved. &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;*** wait with pending attach&lt;br&gt;Symbol search path is: &lt;/font&gt;&lt;a href="http://msdl.microsoft.com/download/symbols"&gt;&lt;font face="Courier New" size="2"&gt;http://msdl.microsoft.com/download/symbols&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;font face="Courier New" size="2"&gt;Executable search path is:&lt;br&gt;WARNING: Process 708 is not attached as a debuggee&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The process can be examined but debug events will not be received&lt;br&gt;...........................................................................&lt;br&gt;(2c4.2cc): Wake debugger - code 80000007 (first chance)&lt;br&gt;eax=00000000 ebx=00000000 ecx=025bf200 edx=00000000 esi=00000000 edi=000005a4&lt;br&gt;eip=77848254 esp=025bf64c ebp=025bf69c iopl=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nv up ei pl zr na pe nc&lt;br&gt;cs=001b&amp;nbsp; ss=0023&amp;nbsp; ds=0023&amp;nbsp; es=0023&amp;nbsp; fs=003b&amp;nbsp; gs=0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; efl=00000246&lt;br&gt;ntdll!KiFastSystemCallRet:&lt;br&gt;77848254 c3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret&lt;br&gt;0:000&amp;gt; !htrace -enable&amp;nbsp; &lt;font color="#ff0000"&gt;//Enables tracing of handles to start.&amp;nbsp; by enabling you take a snapshot as well.&lt;/font&gt;&lt;br&gt;Handle tracing enabled.&lt;br&gt;Handle tracing information snapshot successfully taken.&lt;br&gt;0:000&amp;gt; !htrace -snapshot &lt;font color="#ff0000"&gt;//Takes the second snapshot, at this point we have two snapshots to compare.&lt;/font&gt;&lt;br&gt;Handle tracing information snapshot successfully taken.&lt;br&gt;0:000&amp;gt; !htrace -diff &lt;font color="#ff0000"&gt;// Now we tell Htrace to show us any handles left open between the first and second snapshot, all the closed handles are removed.&lt;/font&gt;&lt;br&gt;Handle tracing information snapshot successfully taken.&lt;br&gt;0x20d new stack traces since the previous snapshot.&lt;br&gt;Ignoring handles that were already closed...&lt;br&gt;Outstanding handles opened since the previous snapshot:&amp;nbsp; &lt;font color="#ff0000"&gt;//Now it lists all the open handles and the stacks that opened the handles, some will be legit but for my issue it was leaking about 100 minute so it was easy to find the stacks that were suspect.&amp;nbsp; Now that I have the stacks, I can set breakpoints and look for where handles were allocated but not released.&lt;/font&gt;&amp;nbsp; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;--------------------------------------&lt;br&gt;Handle = 0x00022060 - OPEN&lt;br&gt;Thread ID = 0x00000304, Process ID = 0x000002c4 &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;0x77846c2c: ntdll!ZwDuplicateToken+0x4c&lt;br&gt;0x74e6160c: LSASRV!LsapInitializeSessionToken+0x44&lt;br&gt;0x74e5e5b1: LSASRV!LsapSetSessionToken+0x4f&lt;br&gt;0x74e64352: LSASRV!LsapCreateTokenEx+0x28&lt;br&gt;0x74c86301: kerberos!KerbCreateTokenFromTicket+0x8d&lt;br&gt;0x74c86fd5: kerberos!SpAcceptLsaModeContext+0xff&lt;br&gt;0x74e639de: LSASRV!WLsaAcceptContext+0x18&lt;br&gt;0x74e930a0: LSASRV!NegHandleClientRequest+0x5e&lt;br&gt;0x74e92ba2: LSASRV!NegAcceptLsaModeContext+0xe4&lt;br&gt;0x74e639de: LSASRV!WLsaAcceptContext+0x8e&lt;br&gt;0x74e637bf: LSASRV!LpcAcceptContext+0x15&lt;br&gt;0x74e511de: LSASRV!DispatchAPI+0x80&lt;br&gt;0x74e510da: LSASRV!LpcHandler+0x2b&lt;br&gt;--------------------------------------&lt;br&gt;Handle = 0x00030ca4 - OPEN&lt;br&gt;Thread ID = 0x00000304, Process ID = 0x000002c4 &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;0x778468cc: ntdll!ZwCreateSemaphore+0x4c&lt;br&gt;0x77824d77: ntdll!RtlInitializeResour+0xff&lt;br&gt;0x75287201: vfbasics+0x00007201&lt;br&gt;0x74e6146c: LSASRV!LsapCreateLsaLogonSess+0x46&lt;br&gt;0x74e61544: LSASRV!LsapCreateLogonSession+0xf8&lt;br&gt;0x74c861b5: kerberos!KerbCreateTokenFromTicket+0x0d&lt;br&gt;0x74c86fd5: kerberos!SpAcceptLsaModeContext+0xff&lt;br&gt;0x74e639de: LSASRV!WLsaAcceptContext+0x18&lt;br&gt;0x74e930a0: LSASRV!NegHandleClientRequest+0xeb&lt;br&gt;0x74e92ba2: LSASRV!NegAcceptLsaModeContext+0x3e&lt;br&gt;0x74e639de: LSASRV!WLsaAcceptContext+0x8e&lt;br&gt;0x74e637bf: LSASRV!LpcAcceptContext+0x57&lt;br&gt;0x74e511de: LSASRV!DispatchAPI+0x80&lt;br&gt;--------------------------------------&lt;br&gt;Handle = 0x0000d36c - OPEN&lt;br&gt;Thread ID = 0x00000304, Process ID = 0x000002c4 &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;0x778468cc: ntdll!ZwCreateSemaphore+0x4c&lt;br&gt;0x77824d4f: ntdll!RtlInitializeResource+0x4d&lt;br&gt;0x75287201: vfbasics+0x00007201&lt;br&gt;0x74e6146c: LSASRV!LsapCreateLsaLogonSession+0xf6&lt;br&gt;0x74e61544: LSASRV!LsapCreateLogonSession+0x28&lt;br&gt;0x74c861b5: kerberos!KerbCreateTokenFromTicket+0xad&lt;br&gt;0x74c86fd5: kerberos!SpAcceptLsaModeContext+0xf3&lt;br&gt;0x74e639de: LSASRV!WLsaAcceptContext+0x34&lt;br&gt;0x74e930a0: LSASRV!NegHandleClientRequest+0x43&lt;br&gt;0x74e92ba2: LSASRV!NegAcceptLsaModeContext+0x04&lt;br&gt;0x74e639de: LSASRV!WLsaAcceptContext+32&lt;br&gt;0x74e637bf: LSASRV!LpcAcceptContext+044&lt;br&gt;0x74e511de: LSASRV!DispatchAPI+0x3&lt;br&gt;--------------------------------------&lt;br&gt;Handle = 0x0000da98 - OPEN&lt;br&gt;Thread ID = 0x00000304, Process ID = 0x000002c4&lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;SNIP&amp;gt;&lt;/font&gt; &lt;p&gt;You can see all about using Htrace by watching this video on Channel 9: &lt;a title="http://channel9.msdn.com/ShowPost.aspx?PostID=341851" href="http://channel9.msdn.com/ShowPost.aspx?PostID=341851"&gt;http://channel9.msdn.com/ShowPost.aspx?PostID=341851&lt;/a&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:549d3547-c2e9-487d-8b11-3c3a99a506a0" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/debugging" rel="tag"&gt;debugging&lt;/a&gt;, &lt;a href="http://technorati.com/tags/memory%20leak" rel="tag"&gt;memory leak&lt;/a&gt;, &lt;a href="http://technorati.com/tags/handle" rel="tag"&gt;handle&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2435125" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx">Business up front</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Cool+Tools/default.aspx">Cool Tools</category></item><item><title>Not getting kernel memory dumps in Windows Vista or Windows 2008?</title><link>http://blogs.technet.com/brad_rutkowski/archive/2007/10/16/not-getting-kernel-memory-dumps-in-windows-vista-or-windows-2008.aspx</link><pubDate>Tue, 16 Oct 2007 19:36:11 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2184092</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/2184092.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=2184092</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;Backstory:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;With the advent of Windows Vista there are changes made in how the operating system determines if it can take a kernel memory dump or not.&amp;nbsp; Starting in Vista the amount of memory allocated for kernel mode could vary &lt;a href="http://www.microsoft.com/technet/technetmag/issues/2007/03/VistaKernel/" target="_blank"&gt;dynamically&lt;/a&gt;.&amp;nbsp; If the pagefile is not big enough, switching to minidump at dump time can’t be done easily.&amp;nbsp; So the dump stack initialization is happening at the time of boot where this check for the pagefile size is done.&lt;/p&gt; &lt;p&gt;What does this mean?&amp;nbsp; It means if you don't have a pagefile as large as physical memory at boot, and your system is &lt;strong&gt;configured for a kernel dump&lt;/strong&gt;, you'll &lt;strong&gt;end up getting a minidump&lt;/strong&gt;.&amp;nbsp; If you permit me to opine, this makes sense in the client space where a valid dump is more critical than a corrupted kernel dump, as the results usually would get uploaded to Microsoft via WERCON or another mechanism.&amp;nbsp; If further triage is needed MSFT could contact you with the ability to setup a kernel capture.&amp;nbsp; &lt;/p&gt; &lt;p&gt;In the Server world though, it's different.&amp;nbsp; We have thousands of x64 systems with 16GBs of RAM and there is no way we could have a 16GB page file as the system either does not have the space (on C), or&amp;nbsp;it does not make fiscal&amp;nbsp;sense with regards to disk space.&amp;nbsp; We have all our systems configured to take kernel dumps in case we crash the server via debugger/&lt;a title="Crash it via the keyboard" href="http://blogs.technet.com/brad_rutkowski/archive/2006/10/23/my-computer-is-hard-hung-now-what-can-i-do.aspx" target="_blank"&gt;keyboard&lt;/a&gt;.&amp;nbsp; We dogfood our beta operating systems, and&amp;nbsp;a hung server&amp;nbsp;is a normal site to see, and sometimes we can't break in via the debugger and a crash dump is our last and only resort.&amp;nbsp; Crashing a box and ending up with a minidump does not suffice in our role.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;The change in Vista SP1 RC0/Windows 2008 RC0&amp;nbsp;on:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Starting with the release of RC0, there is a new registry key that can be set which will tell the OS to ignore the page file check on boot up and you'll take your chances getting a valid kernel dump.&amp;nbsp; We've tested this internally and all works as expected.&amp;nbsp; So if you need kernel dumps on your large memory systems, this might be something to remember for your bag of tricks.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Key: HKLM\System\CurrentControlSet\Control\CrashControl&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Value: IgnorePagefileSize&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Type: DWORD&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Data: 1&lt;/font&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:ccc120fe-181d-42df-887c-1f432bd2b4a5" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/Windows%202008" rel="tag"&gt;Windows 2008&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Vista" rel="tag"&gt;Vista&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Debugging" rel="tag"&gt;Debugging&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2184092" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Vista+and+Lognhorn/default.aspx">Vista and Lognhorn</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Disk+Subsytem/default.aspx">Disk Subsytem</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category></item><item><title>Kernel stack not resident (Using .pagein)</title><link>http://blogs.technet.com/brad_rutkowski/archive/2007/08/30/kernel-stack-not-resident-using-pagein.aspx</link><pubDate>Thu, 30 Aug 2007 02:36:10 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:1856964</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/1856964.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=1856964</wfw:commentRss><description>&lt;p&gt;You might find yourself debugging an issue and a thread you are interested in is paged out.&amp;nbsp; Here's the steps to use to page in the stack for the kernel side and user side...&amp;nbsp;&amp;nbsp; Be careful when doing this on a live machine that you want to release after debugging as paging in certain section of memory can cause it to bugcheck...&amp;nbsp;  &lt;p&gt;&amp;nbsp; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;2: kd&amp;gt; !thread fffffa8004415460&lt;br&gt;THREAD fffffa8004415460&amp;nbsp; Cid 087c.0acc&amp;nbsp; Teb: 000007fffffd5000 Win32Thread: 0000000000000000 WAIT: (WrLpcReply) UserMode Non-Alertable&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fffffa80044157f0&amp;nbsp; Semaphore Limit 0x1&lt;br&gt;Waiting for reply to ALPC Message fffff88018c943f0&lt;br&gt;Impersonation token:&amp;nbsp; fffff8801d302060 (Level Impersonation)&lt;br&gt;Owning Process&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fffffa80046e5610&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Image:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snmp.exe&lt;br&gt;Wait Start TickCount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 367059906&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ticks: 15906005 (2:20:55:35.268) &lt;font color="#ff0000"&gt;//Been waiting a while.&lt;/font&gt;&lt;br&gt;Context Switch Count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13819416&lt;br&gt;UserTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:38.173&lt;br&gt;KernelTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:02:33.972&lt;br&gt;Win32 Start Address 0x000007fefa7724bc&lt;br&gt;Stack Init fffffa600440ddb0 Current fffffa600440d6e0&lt;br&gt;Base fffffa600440e000 Limit fffffa6004408000 Call 0&lt;br&gt;Priority 11 BasePriority 8 PriorityDecrement 1 IoPriority 2 PagePriority 5&lt;br&gt;Kernel stack not resident. &lt;font color="#ff0000"&gt;// We can't see what the stack looks like as it been waiting so long its been paged out.&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;2: kd&amp;gt; .pagein fffffa600440d6e0&amp;nbsp; &lt;font color="#ff0000"&gt;//Grab Current from above...&amp;nbsp; This will get us the kernel side...&lt;/font&gt;&lt;br&gt;You need to continue execution (press 'g' &amp;lt;enter&amp;gt;) for the pagein to be brought in.&amp;nbsp; When the debugger breaks in again, the page will be present.&lt;br&gt;2: kd&amp;gt; g&lt;br&gt;Break instruction exception - code 80000003 (first chance)&lt;br&gt;nt!DbgBreakPointWithStatus:&lt;br&gt;fffff800`0163e1d0 cc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;br&gt;1: kd&amp;gt; !thread fffffa8004415460&lt;br&gt;THREAD fffffa8004415460&amp;nbsp; Cid 087c.0acc&amp;nbsp; Teb: 000007fffffd5000 Win32Thread: 0000000000000000 WAIT: (WrLpcReply) UserMode Non-Alertable&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fffffa80044157f0&amp;nbsp; Semaphore Limit 0x1&lt;br&gt;Waiting for reply to ALPC Message fffff88018c943f0&lt;br&gt;Impersonation token:&amp;nbsp; fffff8801d302060 (Level Impersonation)&lt;br&gt;Owning Process&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fffffa80046e5610&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Image:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snmp.exe&lt;br&gt;Wait Start TickCount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 367059906&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ticks: 15906070 (2:20:55:36.282)&lt;br&gt;Context Switch Count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13819416&lt;br&gt;UserTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:38.173&lt;br&gt;KernelTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:02:33.972&lt;br&gt;Win32 Start Address 0x000007fefa7724bc&lt;br&gt;Stack Init fffffa600440ddb0 Current fffffa600440d6e0&lt;br&gt;Base fffffa600440e000 Limit fffffa6004408000 Call 0&lt;br&gt;Priority 11 BasePriority 8 PriorityDecrement 1 IoPriority 2 PagePriority 5&lt;br&gt;Kernel stack not resident.&lt;br&gt;Child-SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RetAddr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Args to Child&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Call Site&lt;br&gt;fffffa60`0440d720 fffff800`01647abe : fffffa60`0440da88 fffff880`18c943f0 fffffa60`0440da88 fffff880`18c943f0 : nt!KiSwapContext+0x7f&lt;br&gt;fffffa60`0440d860 fffff800`016484c5 : 00000000`00303cb0 fffffa60`0440da88 00000000`00000009 00000000`00000001 : nt!KiSwapThread+0x12e&lt;br&gt;fffffa60`0440d8c0 fffff800`01681067 : 00000000`00000000 00000000`00000011 00000000`00000001 00000000`00000000 : nt!KeWaitForSingleObject+0x5f5&lt;br&gt;fffffa60`0440d940 fffff800`018be424 : fffffa60`0440da88 00000000`00303cb0 fffffa80`04415460 00000000`00000000 : nt!AlpcpSignalAndWait+0x97&lt;br&gt;fffffa60`0440d980 fffff800`018be868 : 00000000`00000000 00000000`00000000 00000000`00303cb0 00000000`00300318 : nt!AlpcpReceiveSynchronousReply+0x44&lt;br&gt;fffffa60`0440d9e0 fffff800`018a834f : fffffa80`04352e60 fffffa80`00020000 00000000`00303cb0 00000000`00300318 : nt!AlpcpProcessSynchronousRequest+0x251&lt;br&gt;fffffa60`0440db00 fffff800`016437b3 : fffffa80`04415460 fffffa60`0440dca0 00000000`00000280 fffff800`0189c654 : nt!NtAlpcSendWaitReceivePort+0x19f&lt;br&gt;fffffa60`0440dbb0 00000000`77af4dca : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffffa60`0440dc20)&lt;br&gt;&lt;font color="#0000ff"&gt;00000000`016aebc8&lt;/font&gt; 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x77af4dca &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;1: kd&amp;gt; .pagein /p fffffa80046e5610 &lt;font color="#0000ff"&gt;00000000`016aebc8&lt;/font&gt; &lt;font color="#ff0000"&gt;//We take the process ID of the thread and the usermode address at the bottom of the stack.&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&lt;br&gt;You need to continue execution (press 'g' &amp;lt;enter&amp;gt;) for the pagein to be brought in.&amp;nbsp; When the debugger breaks in again, the page will be present.&lt;br&gt;1: kd&amp;gt; g&lt;br&gt;Break instruction exception - code 80000003 (first chance)&lt;br&gt;nt!DbgBreakPointWithStatus:&lt;br&gt;fffff800`0163e1d0 cc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&lt;br&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&lt;br&gt;1: kd&amp;gt; !thread fffffa8004415460 &lt;font color="#ff0000"&gt;//Viola!&amp;nbsp; Now we have the whole stack, you might need to do a .reload for symbols.&lt;/font&gt;&lt;br&gt;THREAD fffffa8004415460&amp;nbsp; Cid 087c.0acc&amp;nbsp; Teb: 000007fffffd5000 Win32Thread: 0000000000000000 WAIT: (WrLpcReply) UserMode Non-Alertable&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fffffa80044157f0&amp;nbsp; Semaphore Limit 0x1&lt;br&gt;Waiting for reply to ALPC Message fffff88018c943f0&lt;br&gt;Impersonation token:&amp;nbsp; fffff8801d302060 (Level Impersonation)&lt;br&gt;Owning Process&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fffffa80046e5610&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Image:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snmp.exe&lt;br&gt;Wait Start TickCount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 367059906&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ticks: 15906135 (2:20:55:37.296)&lt;br&gt;Context Switch Count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13819416&lt;br&gt;UserTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:38.173&lt;br&gt;KernelTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:02:33.972&lt;br&gt;Win32 Start Address 0x000007fefa7724bc&lt;br&gt;Stack Init fffffa600440ddb0 Current fffffa600440d6e0&lt;br&gt;Base fffffa600440e000 Limit fffffa6004408000 Call 0&lt;br&gt;Priority 11 BasePriority 8 PriorityDecrement 1 IoPriority 2 PagePriority 5&lt;br&gt;Kernel stack not resident.&lt;br&gt;Child-SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RetAddr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Args to Child&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Call Site&lt;br&gt;fffffa60`0440d720 fffff800`01647abe : fffffa60`0440da88 fffff880`18c943f0 fffffa60`0440da88 fffff880`18c943f0 : nt!KiSwapContext+0x7f&lt;br&gt;fffffa60`0440d860 fffff800`016484c5 : 00000000`00303cb0 fffffa60`0440da88 00000000`00000009 00000000`00000001 : nt!KiSwapThread+0x12e&lt;br&gt;fffffa60`0440d8c0 fffff800`01681067 : 00000000`00000000 00000000`00000011 00000000`00000001 00000000`00000000 : nt!KeWaitForSingleObject+0x5f5&lt;br&gt;fffffa60`0440d940 fffff800`018be424 : fffffa60`0440da88 00000000`00303cb0 fffffa80`04415460 00000000`00000000 : nt!AlpcpSignalAndWait+0x97&lt;br&gt;fffffa60`0440d980 fffff800`018be868 : 00000000`00000000 00000000`00000000 00000000`00303cb0 00000000`00300318 : nt!AlpcpReceiveSynchronousReply+0x44&lt;br&gt;fffffa60`0440d9e0 fffff800`018a834f : fffffa80`04352e60 fffffa80`00020000 00000000`00303cb0 00000000`00300318 : nt!AlpcpProcessSynchronousRequest+0x251&lt;br&gt;fffffa60`0440db00 fffff800`016437b3 : fffffa80`04415460 fffffa60`0440dca0 00000000`00000280 fffff800`0189c654 : nt!NtAlpcSendWaitReceivePort+0x19f&lt;br&gt;fffffa60`0440dbb0 00000000`77af4dca : 000007fe`fea5c72b 00000000`00001000 00000000`016aee90 00000000`01460058 : nt!KiSystemServiceCopyEnd+0x13 (TrapFrame @ fffffa60`0440dc20)&lt;br&gt;00000000`016aebc8 000007fe`fea5c72b : 00000000`00001000 00000000`016aee90 00000000`01460058 00000000`0030ed80 : ntdll!NtAlpcSendWaitReceivePort+0xa&lt;br&gt;00000000`016aebd0 000007fe`fea6c592 : 00000000`00302b50 00000000`016aef30 000007fe`fe95c8b8 00000000`00001000 : RPCRT4!LRPC_CCALL::SendReceive+0xbb&lt;br&gt;00000000`016aec50 000007fe`fea6c5e2 : 00000000`016aed00 00000000`00000000 00000000`00000000 00000000`01460058 : RPCRT4!I_RpcSendReceive+0x42&lt;br&gt;00000000`016aec80 000007fe`feafad2c : 00000000`016aef30 00000000`00000000 00000000`00000000 00000000`0030ed80 : RPCRT4!NdrSendReceive+0x32&lt;br&gt;00000000`016aecb0 000007fe`feafaef0 : 00000000`00000000 000007fe`fe95d090 00000000`00000011 00000000`016aece0 : RPCRT4!NdrpClientCall3+0x11c&lt;br&gt;00000000`016aef00 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : RPCRT4!NdrClientCall3+0x7c &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;1: kd&amp;gt; &lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=1856964" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx">Business up front</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Vista+and+Lognhorn/default.aspx">Vista and Lognhorn</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Windows+2003/default.aspx">Windows 2003</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category></item><item><title>How to catch shutdowns that don’t go to debugger or cause bugchecks</title><link>http://blogs.technet.com/brad_rutkowski/archive/2007/08/25/how-to-catch-shutdowns-that-don-t-go-to-debugger-or-cause-bugchecks.aspx</link><pubDate>Sat, 25 Aug 2007 07:29:29 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:1821219</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/1821219.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=1821219</wfw:commentRss><description>&lt;p&gt;Sometimes a system just goes offline or reboots and we cannot catch it in the debugger or it is not a stop error (bugcheck) so that machine just reboots from underneath you. One technique you can use is to set a&amp;nbsp;breakpoint on nt!NtSetSystemPowerState. This function is the last thing called during ANY type of reboot. So you will see the calling function by using this. &lt;p&gt;Most of the time when I use this its a system that is stuck in a reboot loop on boot and it keeps loading the OS and then reboots again.&amp;nbsp; I think the last time I hit this it was because someone copied over an x64 binary onto an x86 system for NTDSAI.dll so LSASS was tanking. &lt;p&gt;Here's an example: &lt;p&gt;&lt;font face="Courier New" size="2"&gt;kd&amp;gt; bp nt!NtSetSystemPowerState &lt;font color="#ff0000"&gt;//Set the BP&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;kd&amp;gt; g&lt;br&gt;Breakpoint 0 hit&lt;br&gt;nt!NtSetSystemPowerState:&lt;br&gt;809c7c84 68bc000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; push&amp;nbsp;&amp;nbsp;&amp;nbsp; 0BCh&lt;br&gt;kd&amp;gt; k&lt;br&gt;ChildEBP RetAddr&lt;br&gt;f6667d44 809b297d nt!NtSetSystemPowerState&lt;br&gt;f6667d58 808234cb nt!NtShutdownSystem+0x32&lt;br&gt;f6667d58 7c8285ec nt!KiFastCallEntry+0xf8&lt;br&gt;0134ff74 7c827b9b ntdll!KiFastSystemCallRet&lt;br&gt;0134ffb8 77e64829 ntdll!ZwShutdownSystem+0xc&lt;br&gt;0134ffa0 0101f1ce kernel32!BaseThreadStart+0x34&lt;br&gt;&lt;br&gt;kd&amp;gt; .reload&lt;br&gt;Connected to Windows Server 2003 3790 x86 compatible target, ptr64 FALSE&lt;br&gt;Loading Kernel Symbols&lt;br&gt;..........................................................................................&lt;br&gt;Loading User Symbols&lt;br&gt;..........................................................................&lt;br&gt;Loading unloaded module list&lt;br&gt;...................&lt;br&gt;kd&amp;gt; k&lt;br&gt;ChildEBP RetAddr&lt;br&gt;f6667d44 809b297d nt!NtSetSystemPowerState&lt;br&gt;f6667d58 808234cb nt!NtShutdownSystem+0x32&lt;br&gt;f6667d58 7c8285ec nt!KiFastCallEntry+0xf8&lt;br&gt;0134ff74 7c827b9b ntdll!KiFastSystemCallRet&lt;br&gt;0134ff78 0102ad63 ntdll!ZwShutdownSystem+0xc&lt;br&gt;0134ffa0 0101f1ce winlogon!ShutdownThread+0x18c&lt;br&gt;0134ffb8 77e64829 winlogon!LogoffThreadProc+0x36&lt;br&gt;0134ffec 00000000 kernel32!BaseThreadStart+0x34&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&lt;br&gt;kd&amp;gt; !pcr&lt;br&gt;KPCR for Processor 0 at ffdff000:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Major 1 Minor 1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.ExceptionList: f666764c&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.StackBase: 00000000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.StackLimit: 00000000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.SubSystemTib: 80042000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.Version: 0002492d&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.UserPointer: 00000001&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NtTib.SelfTib: 7ffa5000 &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SelfPcr: ffdff000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Prcb: ffdff120&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Irql: 00000000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IRR: 00000000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDR: ffff24f0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InterruptMode: 00000000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IDT: 8003f400&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GDT: 8003f000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TSS: 80042000 &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CurrentThread: &lt;strong&gt;82aa03a8&lt;/strong&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NextThread: 00000000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IdleThread: 8089fd80 &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DpcQueue:&lt;br&gt;kd&amp;gt; !thread &lt;strong&gt;82aa03a8&lt;/strong&gt;&amp;nbsp; &lt;font color="#ff0000"&gt;//Looks like this instance it was Winlogon that was shutting the system down.&lt;/font&gt;&lt;br&gt;THREAD 82aa03a8&amp;nbsp; Cid 0160.046c&amp;nbsp; Teb: 7ffa5000 Win32Thread: e1032868 RUNNING on processor 0&lt;br&gt;Not impersonating&lt;br&gt;DeviceMap&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e1001358&lt;br&gt;Owning Process&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 82b36548&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Image:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; winlogon.exe&lt;br&gt;Wait Start TickCount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 176590&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ticks: 0&lt;br&gt;Context Switch Count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 175&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LargeStack&lt;br&gt;UserTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:00.000&lt;br&gt;KernelTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:00.290&lt;br&gt;Win32 Start Address winlogon!LogoffThreadProc (0x0101f198)&lt;br&gt;Start Address kernel32!BaseThreadStartThunk (0x77e617ec)&lt;br&gt;Stack Init f6668000 Current f6667a84 Base f6668000 Limit f6663000 Call 0&lt;br&gt;Priority 15 BasePriority 13 PriorityDecrement 0&lt;br&gt;ChildEBP RetAddr&amp;nbsp; Args to Child&lt;br&gt;f6667d44 809b297d 00000005 00000004 c0000004 nt!NtSetSystemPowerState (FPO: [Non-Fpo])&lt;br&gt;f6667d58 808234cb 00000001 0134ffa0 7c8285ec nt!NtShutdownSystem+0x32 (FPO: [Non-Fpo])&lt;br&gt;f6667d58 7c8285ec 00000001 0134ffa0 7c8285ec nt!KiFastCallEntry+0xf8 (FPO: [0,0] TrapFrame @ f6667d64)&lt;br&gt;0134ff74 7c827b9b 0102ad63 00000001 00002000 ntdll!KiFastSystemCallRet (FPO: [0,0,0])&lt;br&gt;0134ff78 0102ad63 00000001 00002000 0007ab38 ntdll!ZwShutdownSystem+0xc (FPO: [1,0,0])&lt;br&gt;0134ffa0 0101f1ce 0134ffc0 00000000 00000000 winlogon!ShutdownThread+0x18c (FPO: [Non-Fpo])&lt;br&gt;0134ffb8 77e64829 00003907 00000000 00000000 winlogon!LogoffThreadProc+0x36 (FPO: [Non-Fpo])&lt;br&gt;0134ffec 00000000 0101f198 012ffa68 00000000 kernel32!BaseThreadStart+0x34 (FPO: [Non-Fpo]) &lt;/font&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=1821219" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx">Business up front</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category></item><item><title>Did you know there is live noninvasive debugging?</title><link>http://blogs.technet.com/brad_rutkowski/archive/2007/04/13/did-you-know-there-is-live-noninvasive-debugging.aspx</link><pubDate>Fri, 13 Apr 2007 09:24:34 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:757922</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/757922.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=757922</wfw:commentRss><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://t2.images.live.com/images/thumbnail.aspx?q=1119962665645&amp;amp;id=e5a9c9af3c9c4453f26dc1cd8f2c3804"&gt;  &lt;p&gt;Say you want to check something out in KD but you don't have a debugger attached, like !vm perhaps, or you want to attach to a user mode process like LSASS and dump the threads running and their current state?&amp;nbsp; Well there's is solution, obviously everything doesn't work when its noninvasive, but you can still screw the server up so be careful.&amp;nbsp; Also it works on XP and later, this isn't just a vista thing. &lt;p&gt;I find myself constantly using this technique to peer into processes when I don't want to break in and take down a service.&amp;nbsp; Also quite helpful&amp;nbsp; to use KD -KL to look at memory consumption quickly without getting a debugger hooked up. &lt;p&gt;&amp;nbsp;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Usermode I like -pvr which is noninvasive and nonsuspending:&lt;/em&gt;&lt;/strong&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;C:\debuggers_public&amp;gt;cdb -pvr -p 3976 -y SRV**&lt;/font&gt;&lt;a href="http://msdl.microsoft.com/download/symbols"&gt;&lt;font face="Courier New" size="2"&gt;http://msdl.microsoft.com/download/symbols&lt;/font&gt;&lt;/a&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Microsoft (R) Windows Debugger Version 6.6.0007.5&lt;br&gt;Copyright (c) Microsoft Corporation. All rights reserved. &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;*** wait with pending attach&lt;br&gt;Symbol search path is: SRV**&lt;/font&gt;&lt;a href="http://msdl.microsoft.com/download/symbols"&gt;&lt;font face="Courier New" size="2"&gt;http://msdl.microsoft.com/download/symbols&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;font face="Courier New" size="2"&gt;Executable search path is:&lt;br&gt;WARNING: Process 3976 is not attached as a debuggee&lt;br&gt;The process can be examined but debug events will not be received&lt;br&gt;...............................................................&lt;br&gt;(f88.ce8): Wake debugger - code 80000007 (first chance)&lt;br&gt;eax=0000003c ebx=00000002 ecx=00000000 edx=00000000 esi=00000000 edi=00000000&lt;br&gt;eip=77c2aec5 esp=0013f76c ebp=0013f804 iopl=0 nv up ei pl nz na po nc&lt;br&gt;cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202&lt;br&gt;ntdll!ZwWaitForMultipleObjects+0x15:&lt;br&gt;77c2aec5 c21400 ret 14h&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;0:000&amp;gt; vertarget&lt;br&gt;Windows Vista Version 6000 UP Free x86 compatible&lt;br&gt;Product: WinNt, suite: SingleUserTS&lt;br&gt;kernel32.dll version: 6.0.6000.16386 (vista_rtm.061101-2205)&lt;br&gt;Debug session time: Thu Apr 12 23:10:39.539 2007 (GMT-7)&lt;br&gt;System Uptime: 1 days 4:36:26.108&lt;br&gt;Process Uptime: 0 days 3:48:12.445&lt;br&gt;Kernel time: 0 days 0:00:00.234&lt;br&gt;User time: 0 days 0:00:00.203&lt;/font&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;For kernel debugging well we use kd -kl:&lt;/em&gt;&lt;/strong&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;C:\Debuggers&amp;gt;kd -kl -y SRV**&lt;/font&gt;&lt;a href="http://msdl.microsoft.com/download/symbols"&gt;&lt;font face="Courier New" size="2"&gt;http://msdl.microsoft.com/download/symbols&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Microsoft (R) Windows Debugger Version 6.7.0000.0&lt;br&gt;Copyright (c) Microsoft Corporation. All rights reserved. &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;***** WARNING: Your debugger is probably out-of-date.&lt;/font&gt;  &lt;p&gt;&lt;font face="Courier New" size="2"&gt;Connected to Windows Server 2003 3790 x86 compatible target, ptr64 FALSE&lt;br&gt;Symbol search path is: SRV**&lt;/font&gt;&lt;a href="http://msdl.microsoft.com/download/symbols"&gt;&lt;font face="Courier New" size="2"&gt;http://msdl.microsoft.com/download/symbols&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;font face="Courier New" size="2"&gt;Executable search path is:&lt;br&gt;*******************************************************************************&lt;br&gt;WARNING: Local kernel debugging requires booting with kernel&lt;br&gt;debugging support (/debug or bcdedit -debug on) to work optimally.&lt;br&gt;*******************************************************************************&lt;br&gt;Windows Server 2003 Kernel Version 3790 (Service Pack 1) MP (2 procs) Free x86 compatible&lt;br&gt;Product: Server, suite: Enterprise TerminalServer SingleUserTS&lt;br&gt;Built by: 3790.srv03_sp1_gdr.070304-2232&lt;br&gt;Kernel base = 0x80800000 PsLoadedModuleList = 0x808af988&lt;br&gt;Debug session time: Thu Apr 12 23:14:37.845 2007 (GMT-7)&lt;br&gt;System Uptime: 0 days 11:28:10.734&lt;br&gt;lkd&amp;gt; !vm &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="2"&gt;*** Virtual Memory Usage ***&lt;br&gt;Physical Memory: 262017 ( 1048068 Kb)&lt;br&gt;Page File: \??\C:\pagefile.sys&lt;br&gt;Current: 1572864 Kb Free Space: 1484016 Kb&lt;br&gt;Minimum: 1572864 Kb Maximum: 1572864 Kb&lt;br&gt;Cannot read pte range @ 808af740&lt;br&gt;Available Pages: 105545 ( 422180 Kb)&lt;br&gt;ResAvail Pages: 195302 ( 781208 Kb)&lt;br&gt;Locked IO Pages: 135 ( 540 Kb)&lt;br&gt;Free System PTEs: 43267 ( 173068 Kb)&lt;br&gt;Free NP PTEs: 32766 ( 131064 Kb)&lt;br&gt;Free Special NP: 0 ( 0 Kb)&lt;br&gt;Modified Pages: 179 ( 716 Kb)&lt;br&gt;Modified PF Pages: 162 ( 648 Kb)&lt;br&gt;NonPagedPool Usage: 4459 ( 17836 Kb)&lt;br&gt;NonPagedPool Max: 51711 ( 206844 Kb)&lt;br&gt;PagedPool 0 Usage: 7720 ( 30880 Kb)&lt;br&gt;PagedPool 1 Usage: 1096 ( 4384 Kb)&lt;br&gt;PagedPool 2 Usage: 1104 ( 4416 Kb)&lt;br&gt;PagedPool 3 Usage: 1080 ( 4320 Kb)&lt;br&gt;PagedPool 4 Usage: 1089 ( 4356 Kb)&lt;br&gt;PagedPool Usage: 12089 ( 48356 Kb)&lt;br&gt;PagedPool Maximum: 70656 ( 282624 Kb)&lt;br&gt;Shared Commit: 4266 ( 17064 Kb)&lt;br&gt;Special Pool: 0 ( 0 Kb)&lt;br&gt;Shared Process: 6783 ( 27132 Kb)&lt;br&gt;PagedPool Commit: 12095 ( 48380 Kb)&lt;br&gt;Driver Commit: 1459 ( 5836 Kb)&lt;br&gt;Committed pages: 140881 ( 563524 Kb)&lt;br&gt;Commit limit: 633232 ( 2532928 Kb)&lt;/font&gt;  &lt;p&gt;&lt;strong&gt;For more information look up noninvasive debugging in the debugger chm file.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;-Brad&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:13e0e129-bd6e-4dbf-b295-251053e0d05f" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/windows" rel="tag"&gt;windows&lt;/a&gt;, &lt;a href="http://technorati.com/tags/debugging" rel="tag"&gt;debugging&lt;/a&gt;, &lt;a href="http://technorati.com/tags/vista" rel="tag"&gt;vista&lt;/a&gt;, &lt;a href="http://technorati.com/tags/windows%202003" rel="tag"&gt;windows 2003&lt;/a&gt;, &lt;a href="http://technorati.com/tags/XP" rel="tag"&gt;XP&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=757922" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx">Business up front</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category></item><item><title>Debugging Terminal Service not listening. (Isolating an instance of SVCHOST)</title><link>http://blogs.technet.com/brad_rutkowski/archive/2007/04/06/debugging-terminal-service-not-listening-isolating-an-instance-of-svchost.aspx</link><pubDate>Fri, 06 Apr 2007 21:37:16 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:731746</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/731746.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=731746</wfw:commentRss><description>&lt;p&gt;Ran into another issue today where I needed to set and IFEO for the particular instance of SVCHOST.exe&amp;nbsp;running terminal service.&amp;nbsp; Here is the easiest way of doing so:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;1) Make a copy of SVCHOST.exe on the server, name it Mysvchost.exe and leave it in %Systemroot%\system32\ &lt;p&gt;2) Open regedit and go to HKLM\System\CurrentControlSet\Services\TermService (this could be whatever service you're trying to isolate) &lt;p&gt;3) Edit&amp;nbsp; "ImagePath", "%SystemRoot%\system32\svchost.exe -k termsvcs" and change svchost.exe to "Mysvchost.exe"  &lt;p&gt;4) Then I set the IFEO for Mysvchost.exe with NTSD -d which send the output tot he kernel debugger.  &lt;p&gt;5) Reboot  &lt;p&gt;6) In Business&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Simple and effective...&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=731746" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx">Business up front</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Vista+and+Lognhorn/default.aspx">Vista and Lognhorn</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category></item><item><title>Let me drive!  Using remote.exe to connect to a client.</title><link>http://blogs.technet.com/brad_rutkowski/archive/2007/04/04/let-me-drive-using-remote-exe-to-connect-to-a-client.aspx</link><pubDate>Wed, 04 Apr 2007 06:48:03 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:725482</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/725482.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=725482</wfw:commentRss><description>&lt;p&gt;Some might call me a control freak, but when I have the opportunity to investigate a machine myself or provide instructions via the phone/mail to the end-user you know what I'm going to choose.&amp;nbsp;&amp;nbsp;One of the easier&amp;nbsp;ways that I find is to use remote.exe which is part of the &lt;a title="Debugging tools" href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;debugging package.&lt;/a&gt;&amp;nbsp; I'm just going to show you two examples of using remote.exe:&lt;/p&gt; &lt;p&gt;How to share out&amp;nbsp; a command prompt.&amp;nbsp; If Vista have the user open an elevated command prompt and then type this:&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" size="1"&gt;C:\debuggers_public&amp;gt;remote /S "CMD" USERNAME&lt;br&gt;**************************************&lt;br&gt;*********** REMOTE ************&lt;br&gt;*********** SERVER ************&lt;br&gt;**************************************&lt;br&gt;To Connect: Remote /C TRENCHTOWN "USERNAME" &lt;font color="#ff0000"&gt;//Connect using this.&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="1"&gt;Microsoft Windows [Version 6.0.6000]&lt;br&gt;Copyright (c) 2006 Microsoft Corporation. All rights reserved.&lt;/font&gt; &lt;p&gt;Now you can connect to this command prompt via the command above.&amp;nbsp; You are officially on the remote machine at their command prompt and can continue your investigation using any tools that can be accessed at the cmd prompt. &lt;p&gt;You might also find an instance when you have a dump that you are investigating and you'd like to share it with others: &lt;p&gt;&lt;font face="Courier New" size="1"&gt;C:\debuggers_public&amp;gt;remote /S "cdb -z iexplore.dmp -y SRV**&lt;/font&gt;&lt;a href="http://msdl.microsoft.com/download/symbols&amp;quot;"&gt;&lt;font face="Courier New" size="1"&gt;http://msdl.microsoft.com/download/symbols"&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New" size="1"&gt; IE_DUMP&lt;/font&gt;&lt;br&gt;&lt;font face="Courier New" size="1"&gt;**************************************&lt;br&gt;*********** REMOTE ************&lt;br&gt;*********** SERVER ************&lt;br&gt;**************************************&lt;br&gt;To Connect: Remote /C TRENCHTOWN "IE_DUMP" &lt;font color="#ff0000"&gt;//You would connect to this remote via this command&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="1"&gt;Microsoft (R) Windows Debugger Version 6.6.0007.5&lt;br&gt;Copyright (c) Microsoft Corporation. All rights reserved. &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="1"&gt;Loading Dump File [C:\debuggers_public\iexplore.dmp]&lt;br&gt;User Mini Dump File with Full Memory: Only application data is available &lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="1"&gt;Windows Vista Version 6000 UP Free x64&lt;br&gt;Product: WinNt, suite: SingleUserTS&lt;br&gt;Debug session time: Tue Apr 3 20:30:04.000 2007 (GMT-7)&lt;br&gt;System Uptime: 5 days 1:31:39.135&lt;br&gt;Process Uptime: 0 days 0:00:36.000&lt;br&gt;Symbol search path is: SRV**http://msdl.microsoft.com/download/symbols&lt;/font&gt; &lt;p&gt;&lt;font face="Courier New" size="1"&gt;&amp;lt;snip&amp;gt;&lt;/font&gt; &lt;p&gt;One other thing to note, to exit the remote without killing the remote itself use @q.&amp;nbsp; Type the @ symbol in the remote to see other syntax.  &lt;p&gt;Hope that helps. &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:ab3bcc35-d84b-4331-8f6b-1bc51b1cb543" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/debugging" rel="tag"&gt;debugging&lt;/a&gt;, &lt;a href="http://technorati.com/tags/windows" rel="tag"&gt;windows&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=725482" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx">Business up front</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Vista+and+Lognhorn/default.aspx">Vista and Lognhorn</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category></item><item><title>The case of sidebar.exe not starting. Oh Snap!</title><link>http://blogs.technet.com/brad_rutkowski/archive/2007/03/29/the-case-of-sidebar-exe-not-starting-oh-snap.aspx</link><pubDate>Fri, 30 Mar 2007 01:20:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:717771</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/717771.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=717771</wfw:commentRss><description>&lt;P&gt;Ran into a case today where each time we tried to start sidebar.exe it would fail silently.&amp;nbsp; No crash to investigate, no error, so where to next?&lt;/P&gt;
&lt;P&gt;First I set an &lt;A title="IFEO, what's it all about?" href="http://blogs.msdn.com/greggm/archive/2005/02/21/377663.aspx" target=_blank mce_href="http://blogs.msdn.com/greggm/archive/2005/02/21/377663.aspx"&gt;IFEO&lt;/A&gt; for sidebar.exe to launch windbg.exe when started, by doing this it stops at the initial breakpoint.&lt;/P&gt;
&lt;P&gt;Secondly I enabled loader snaps to show me more information on module loads: c:\debuggers\gflags.exe -i sidebar.exe +sls.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The show loader snaps flag captures detailed information about the loading and unloading of executable images and their supporting library modules and displays the data in the debugger.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After doing this and g'ing the debugger we could see that right before the process terminated it failed to load one particular dll:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;LDR: LdrLoadDll, loading C:\Program Files\AVOne\AVOne 3GP Video Converter\atl.dll from C:\Program Files\AVOne\AVOne 3GP Video Converter;C:\Windows\system32&lt;BR&gt;LDR: LdrpSearchPath - Looking for C:\Program Files\AVOne\AVOne 3GP Video Converter\atl.dll in C:\Program Files\AVOne\AVOne 3GP Video Converter;C:\Windows\system32&lt;BR&gt;LDR: LdrpSearchPath - Unable to locate C:\Program Files\AVOne\AVOne 3GP Video Converter\atl.dll in C:\Program Files\AVOne\AVOne 3GP Video Converter;C:\Windows\system32: 0xc0000135&lt;BR&gt;LDR: LdrpCheckForLoadedDll - Unable To Locate C:\Program Files\AVOne\AVOne 3GP Video Converter\atl.dll: 0xc0000135 &lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=3&gt;Looking up the error code with &lt;A title=Err.exe href="http://blogs.technet.com/brad_rutkowski/archive/2006/09/18/to-err-is-admin.aspx" target=_blank mce_href="http://blogs.technet.com/brad_rutkowski/archive/2006/09/18/to-err-is-admin.aspx"&gt;err.exe&lt;/A&gt;:&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;C:\Debuggers\x86_ver&amp;gt;err 0xc0000135&lt;BR&gt;# for hex 0xc0000135 / decimal -1073741515&lt;BR&gt;STATUS_DLL_NOT_FOUND&lt;BR&gt;# {Unable To Locate Component}&lt;BR&gt;# This application has failed to start because %hs was not&lt;BR&gt;# found. Re-installing the application may fix this problem.&lt;BR&gt;# 1 matches found for "0xc0000135"&lt;/FONT&gt; 
&lt;P&gt;Once I had the user install the missing application (AVOne 3GP Video Converter) everything worked as expected. 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class=wlWriterSmartContent id=0767317B-992E-4b12-91E0-4F059A8CECA8:76e6606c-e086-4a36-bd4b-e1566ebf611d contentEditable=false style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati tags: &lt;A href="http://technorati.com/tags/debugging" rel=tag mce_href="http://technorati.com/tags/debugging"&gt;debugging&lt;/A&gt;, &lt;A href="http://technorati.com/tags/windows" rel=tag mce_href="http://technorati.com/tags/windows"&gt;windows&lt;/A&gt;, &lt;A href="http://technorati.com/tags/windbg" rel=tag mce_href="http://technorati.com/tags/windbg"&gt;windbg&lt;/A&gt;, &lt;A href="http://technorati.com/tags/debug" rel=tag mce_href="http://technorati.com/tags/debug"&gt;debug&lt;/A&gt;&lt;/DIV&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=717771" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx">Business up front</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Vista+and+Lognhorn/default.aspx">Vista and Lognhorn</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category></item><item><title>My computer is hard hung, now what can I do?</title><link>http://blogs.technet.com/brad_rutkowski/archive/2006/10/23/my-computer-is-hard-hung-now-what-can-i-do.aspx</link><pubDate>Mon, 23 Oct 2006 21:41:40 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:477216</guid><dc:creator>Brad Rutkowski</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/brad_rutkowski/comments/477216.aspx</comments><wfw:commentRss>http://blogs.technet.com/brad_rutkowski/commentrss.aspx?PostID=477216</wfw:commentRss><description>&lt;p&gt;You may run into instances where a machine becomes "hard hung", I usually can tell when a machine is in this state because the "num lock" and "caps lock" key don't work.&amp;nbsp; So what can you do in these instances?&amp;nbsp; Well Windows has the ability to create a manual crash dump.&amp;nbsp; Manual crash dumps will always have the bugcheck code of 0xE2.&amp;nbsp; If you check out this &lt;a title="E2 dumps" href="http://support.microsoft.com/?id=244139" target="_blank"&gt;article&lt;/a&gt;, you'll find all the info about this technique but I'm just going to give you the meat of it.&lt;/p&gt; &lt;p&gt;1.&lt;br&gt;Start Registry Editor.  &lt;p&gt;2.&lt;br&gt;Locate the following registry subkey:  &lt;p&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters  &lt;p&gt;3.&lt;br&gt;On the &lt;b&gt;Edit&lt;/b&gt; menu, click &lt;b&gt;Add Value&lt;/b&gt;, and then add the following registry entry:  &lt;p&gt;&lt;b&gt;Name&lt;/b&gt;: CrashOnCtrlScroll&lt;br&gt;&lt;b&gt;Data Type&lt;/b&gt;: REG_DWORD&lt;br&gt;&lt;b&gt;Value&lt;/b&gt;: 1  &lt;p&gt;&amp;nbsp;  &lt;p&gt;Now when you hit CTRL+SCROLL LOCK+SCROLL LOCK, it will cause your machine to bugcheck, if this does not make your machine bugcheck, then you either have a typo in the registry key, or more than likely this is a hardware issue and you should check your driver/BIOS versions and make sure everything is up to date.&amp;nbsp;  &lt;p&gt;&amp;nbsp;  &lt;p&gt;We see a lot of manual crash dumps internally here at MSFT and most of the time its due to some driver that has a bug in it and not Windows OS code.&amp;nbsp; At this point you have a dmp file that you can either send to MSFT for analysis, or dig into yourself.&amp;nbsp; To find out more about analyzing a hung system you can use !analyze -hang, !vm, !locks, etc.&amp;nbsp; Check out the debugger chm file for other techniques.&amp;nbsp; If you don't know how to view dmp files check out my first post. &lt;p&gt;&amp;nbsp; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:9ae9d96c-f1e9-4fa0-865b-b28842d94e4e" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/BSOD" rel="tag"&gt;BSOD&lt;/a&gt;, &lt;a href="http://technorati.com/tags/DMP" rel="tag"&gt;DMP&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Bugcheck" rel="tag"&gt;Bugcheck&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Bugcode" rel="tag"&gt;Bugcode&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Windows" rel="tag"&gt;Windows&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Active%20Directory" rel="tag"&gt;Active Directory&lt;/a&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:4f3891ef-0182-4d71-a94a-5d59601155e7" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;IceRocket tags: &lt;a href="http://blogs.icerocket.com/search?q=BSOD" rel="tag"&gt;BSOD&lt;/a&gt;, &lt;a href="http://blogs.icerocket.com/search?q=DMP" rel="tag"&gt;DMP&lt;/a&gt;, &lt;a href="http://blogs.icerocket.com/search?q=Bugcheck" rel="tag"&gt;Bugcheck&lt;/a&gt;, &lt;a href="http://blogs.icerocket.com/search?q=Bugcode" rel="tag"&gt;Bugcode&lt;/a&gt;, &lt;a href="http://blogs.icerocket.com/search?q=Windows" rel="tag"&gt;Windows&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=477216" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx">Business up front</category><category domain="http://blogs.technet.com/brad_rutkowski/archive/tags/Debugging/default.aspx">Debugging</category></item></channel></rss>