<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Joomla! 1.5 - Open Source Content Management" -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>WinDbg.info - Forum</title>
        <description>Thinking debugging? Think www.windbg.info.</description>
        <link>http://www.windbg.info/</link>
        <lastBuildDate>Wed, 08 Sep 2010 03:10:38 +0200</lastBuildDate>
        <generator>Joomla! 1.5 - Open Source Content Management</generator>
        <language>en-gb</language>
        <item>
            <title>Thread: Crash location !</title>
            <link>http://www.windbg.info/forum/13-cat-crash-dump-analysis-/81-crash-location-.html</link>
            <author>patra04</author>
            <description>Hello Folks,&lt;br /&gt;
&lt;br /&gt;
I have a crash file which gives me the following information.&lt;br /&gt;
&lt;br /&gt;
================================================================================&lt;br /&gt;
An Exception Occurred:&lt;br /&gt;
&lt;br /&gt;
Reason:&lt;br /&gt;
some.exe caused an EXCEPTION_ACCESS_VIOLATION in module some.dll at 001B:012C300B&lt;br /&gt;
&lt;br /&gt;
Registers:&lt;br /&gt;
EAX=00910000  EBX=003425A0  ECX=012C7090  EDX=7C82860C  ESI=012C7090 &lt;br /&gt;
EDI=00000000  EBP=05CBF3C8  ESP=05CBF3B8  EIP=012C300B  FLG=00010206 &lt;br /&gt;
CS =001B      DS =0023      SS =0023 &lt;br /&gt;
ES =0023      FS =003B      GS =0000&lt;br /&gt;
&lt;br /&gt;
Call Stack:&lt;br /&gt;
001B:012C300B (0x00910048 0x009AE718 0x009AE6E0 0x009AE6EC) some.dll&lt;br /&gt;
001B:01A11027 (0x00910048 0x00000000 0x00000000 0x042CF0D8) one.dll&lt;br /&gt;
001B:0120834E (0x00910048 0x00941D58 0x00000000 0x00000000) two.dll&lt;br /&gt;
001B:0111DD9E (0x00000002 0x05CBFE34 0x05CBFA38 0x00000000) three.dll&lt;br /&gt;
001B:01113AC7 (0x05CBFA38 0x05CBFE34 0x05CBF9A4 0x00000001) four.dll&lt;br /&gt;
001B:011188BF (0x05CBFA38 0x00CBFE34 0x00000000 0x05CBFEC4) five.dll&lt;br /&gt;
001B:01104222 (0x05CBFA38 0x05CBFE34 0x00000000 0x05CBFEC4) six.dll&lt;br /&gt;
001B:0110B409 (0x074CA008 0x05CBFA38 0x05CBFE34 0x00000000) seven.dll&lt;br /&gt;
&lt;br /&gt;
================================================================================&lt;br /&gt;
&lt;br /&gt;
I started winDBG and attached it to the instance of the faulty process on my local machine. I have all the correct PDBs and symbol path is set correctly.&lt;br /&gt;
&lt;br /&gt;
The above crash file also stated that some.dll was loaded at 012C0000.&lt;br /&gt;
&lt;br /&gt;
In my running instance I can see that some.dll is loaded at 017a0000.&lt;br /&gt;
&lt;br /&gt;
Can I use the following command in my winDBG session to locate the crash location?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
0:007&amp;gt; ln 017a300B&lt;br /&gt;
&lt;br /&gt;
012C300B - 0x012C0000 = 300B = crash location?&lt;br /&gt;
For me it should it 017a0000 + 300B = 017a300B?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or do I have to use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
0:007&amp;gt; ln 017a200B&lt;br /&gt;
&lt;br /&gt;
012C300B - 0x012C0000 -1000 = 200B?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or am I wrong in my approach itself?&lt;br /&gt;
&lt;br /&gt;
Thanks for your help and support.&lt;br /&gt;
&lt;br /&gt;
Regards,&lt;br /&gt;
Rahul</description>
            <pubDate>Fri, 13 Aug 2010 21:09:14 +0200</pubDate>
        </item>
        <item>
            <title>Thread: Minidump error</title>
            <link>http://www.windbg.info/forum/13-cat-crash-dump-analysis-/79-minidump-error.html</link>
            <author>toty</author>
            <description>Hi, kindly help.  Got 3 minidump files w/ after 3 consecutive restart of the machine by itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging Details:&lt;br /&gt;
------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Could not read faulting driver name&lt;br /&gt;
&lt;br /&gt;
READ_ADDRESS:  fffffff0 &lt;br /&gt;
&lt;br /&gt;
FAULTING_IP: &lt;br /&gt;
nt!ObReferenceObjectByPointer+f&lt;br /&gt;
e086c6a1 394608          cmp     dword ptr [esi+8],eax&lt;br /&gt;
&lt;br /&gt;
MM_INTERNAL_CODE:  0&lt;br /&gt;
&lt;br /&gt;
CUSTOMER_CRASH_COUNT:  3&lt;br /&gt;
&lt;br /&gt;
DEFAULT_BUCKET_ID:  DRIVER_FAULT_SERVER_MINIDUMP&lt;br /&gt;
&lt;br /&gt;
BUGCHECK_STR:  0x50&lt;br /&gt;
&lt;br /&gt;
PROCESS_NAME:  System&lt;br /&gt;
&lt;br /&gt;
CURRENT_IRQL:  1&lt;br /&gt;
&lt;br /&gt;
TRAP_FRAME:  eeb9dc30 -- (.trap 0xffffffffeeb9dc30)&lt;br /&gt;
ErrCode = 00000000&lt;br /&gt;
eax=00000000 ebx=00000000 ecx=000007a4 edx=eeb9dd88 esi=ffffffe8 edi=00000000&lt;br /&gt;
eip=e086c6a1 esp=eeb9dca4 ebp=eeb9dca8 iopl=0         nv up ei ng nz na pe nc&lt;br /&gt;
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010286&lt;br /&gt;
nt!ObReferenceObjectByPointer+0xf:&lt;br /&gt;
e086c6a1 394608          cmp     dword ptr [esi+8],eax ds:0023:fffffff0=????????&lt;br /&gt;
Resetting default scope&lt;br /&gt;
&lt;br /&gt;
LAST_CONTROL_TRANSFER:  from e085eced to e0827c63&lt;br /&gt;
&lt;br /&gt;
STACK_TEXT:  &lt;br /&gt;
eeb9dba0 e085eced 00000050 fffffff0 00000000 nt!KeBugCheckEx+0x1b&lt;br /&gt;
eeb9dc18 e088c798 00000000 fffffff0 00000000 nt!MmAccessFault+0xb25&lt;br /&gt;
eeb9dc18 e086c6a1 00000000 fffffff0 00000000 nt!KiTrap0E+0xdc&lt;br /&gt;
eeb9dca8 e0933d73 00000000 00000000 00000000 nt!ObReferenceObjectByPointer+0xf&lt;br /&gt;
eeb9dd64 f3a552b3 00000000 00000000 00000000 nt!ObOpenObjectByPointer+0x27&lt;br /&gt;
WARNING: Stack unwind information not available. Following frames may be wrong.&lt;br /&gt;
eeb9dd90 f3a553fb 00001fa4 00000ece 00006944 hknlgi+0x2b3&lt;br /&gt;
eeb9ddac e0949b7c 00000000 00000000 00000000 hknlgi+0x3fb&lt;br /&gt;
eeb9dddc e088e062 f3a552d0 00000000 00000000 nt!PspSystemThreadStartup+0x2e&lt;br /&gt;
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
STACK_COMMAND:  kb&lt;br /&gt;
&lt;br /&gt;
FOLLOWUP_IP: &lt;br /&gt;
hknlgi+2b3&lt;br /&gt;
f3a552b3 ??              ???&lt;br /&gt;
&lt;br /&gt;
SYMBOL_STACK_INDEX:  5&lt;br /&gt;
&lt;br /&gt;
SYMBOL_NAME:  hknlgi+2b3&lt;br /&gt;
&lt;br /&gt;
FOLLOWUP_NAME:  MachineOwner&lt;br /&gt;
&lt;br /&gt;
MODULE_NAME: hknlgi&lt;br /&gt;
&lt;br /&gt;
IMAGE_NAME:  hknlgi.sys&lt;br /&gt;
&lt;br /&gt;
DEBUG_FLR_IMAGE_TIMESTAMP:  43aee2d0&lt;br /&gt;
&lt;br /&gt;
FAILURE_BUCKET_ID:  0x50_hknlgi+2b3&lt;br /&gt;
&lt;br /&gt;
BUCKET_ID:  0x50_hknlgi+2b3&lt;br /&gt;
&lt;br /&gt;
Followup: MachineOwner&lt;br /&gt;
---------</description>
            <pubDate>Wed, 11 Aug 2010 17:44:31 +0200</pubDate>
        </item>
        <item>
            <title>Thread: function plus offset question - reply by: chupper</title>
            <link>http://www.windbg.info/forum/13-cat-crash-dump-analysis-/78-re-function-plus-offset-question.html</link>
            <author>chupper</author>
            <description>Great!  Thanks for the help.  I have so much trouble sorting through these details in the normal help file / chm.&lt;br /&gt;
&lt;br /&gt;
Thanks again!</description>
            <pubDate>Tue, 03 Aug 2010 00:04:29 +0200</pubDate>
        </item>
        <item>
            <title>Thread: Developing WinDBG extensions in Visual Studio</title>
            <link>http://www.windbg.info/forum/17-cat-writting-extensions/75-developing-windbg-extensions-in-visual-studio.html</link>
            <author>huku</author>
            <description>Hello everyone,&lt;br /&gt;
&lt;br /&gt;
I would like to share with everyone the following link which I found via google.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.saygoodnight.com/?p=48&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;www.saygoodnight.com/?p=48&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
So... if you are trying to code a WinDBG extension in VS, don&amp;#039;t forget to add __declspec(dllexport) in all function definitions that should be visible to WinDBG :)</description>
            <pubDate>Mon, 02 Aug 2010 19:07:16 +0200</pubDate>
        </item>
        <item>
            <title>Thread: ASP hang</title>
            <link>http://www.windbg.info/forum/13-cat-crash-dump-analysis-/72-asp-hang.html</link>
            <author>Keith</author>
            <description>Hi&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;d be very grateful for any help with interpreting the following analysis from WinDbg.  The problem is an ASP application hanging about once a day. The only solution is to manually recycle the application pool.  The server is Windows 2003 and IIS6.&lt;br /&gt;
&lt;br /&gt;
Many thanks in advance.&lt;br /&gt;
&lt;br /&gt;
Here&amp;#039;s the output:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
0:000:x86&amp;gt; !analyze -v&lt;br /&gt;
*** WARNING: symbols timestamp is wrong 0x499007dc 0x49900d5a for ntdll.dll&lt;br /&gt;
*******************************************************************************&lt;br /&gt;
*                                                                             *&lt;br /&gt;
*                        Exception Analysis                                   *&lt;br /&gt;
*                                                                             *&lt;br /&gt;
*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for hotlinkprot.dll - &lt;br /&gt;
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ISAPI_Rewrite.dll - &lt;br /&gt;
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for mtbnotif.dll - &lt;br /&gt;
*** WARNING: symbols timestamp is wrong 0x474b83d7 0x474b8467 for asp.dll&lt;br /&gt;
*** WARNING: symbols timestamp is wrong 0x45d6cc1d 0x45d70ad8 for comsvcs.dll&lt;br /&gt;
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for fcgiext.dll - &lt;br /&gt;
&lt;br /&gt;
FAULTING_IP: &lt;br /&gt;
+5befd80&lt;br /&gt;
00000000 ??              ???&lt;br /&gt;
&lt;br /&gt;
EXCEPTION_RECORD:  ffffffffffffffff -- (.exr 0xffffffffffffffff)&lt;br /&gt;
ExceptionAddress: 0000000000000000&lt;br /&gt;
   ExceptionCode: 80000003 (Break instruction exception)&lt;br /&gt;
  ExceptionFlags: 00000000&lt;br /&gt;
NumberParameters: 0&lt;br /&gt;
&lt;br /&gt;
FAULTING_THREAD:  00000000000068c8&lt;br /&gt;
&lt;br /&gt;
DEFAULT_BUCKET_ID:  ZEROED_STACK&lt;br /&gt;
&lt;br /&gt;
PROCESS_NAME:  w3wp.exe&lt;br /&gt;
&lt;br /&gt;
OVERLAPPED_MODULE: Address regions for &amp;#039;activeds&amp;#039; and &amp;#039;輨&amp;#039; overlap&lt;br /&gt;
&lt;br /&gt;
ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.&lt;br /&gt;
&lt;br /&gt;
EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid&lt;br /&gt;
&lt;br /&gt;
MOD_LIST: &amp;lt;ANALYSIS/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
APPLICATION_VERIFIER_FLAGS:  0&lt;br /&gt;
&lt;br /&gt;
PRIMARY_PROBLEM_CLASS:  ZEROED_STACK&lt;br /&gt;
&lt;br /&gt;
BUGCHECK_STR:  APPLICATION_FAULT_ZEROED_STACK&lt;br /&gt;
&lt;br /&gt;
LAST_CONTROL_TRANSFER:  from 000000007d4d8c9e to 000000007d61c846&lt;br /&gt;
&lt;br /&gt;
STACK_TEXT:  &lt;br /&gt;
0014fc0c 7d4d8c9e 00000190 00000000 00000000 ntdll_7d600000!ZwWaitForSingleObject+0x15&lt;br /&gt;
0014fc7c 7d4d8c0d 00000190 ffffffff 00000000 kernel32!WaitForSingleObjectEx+0xac&lt;br /&gt;
0014fc90 5a364692 00000190 ffffffff 00000000 kernel32!WaitForSingleObject+0x12&lt;br /&gt;
0014fca0 5a366f27 003354c8 5a3af3dd 00000000 w3dt!WP_CONTEXT::RunMainThreadLoop+0x10&lt;br /&gt;
0014fca8 5a3af3dd 00000000 64711dcf 00000000 w3dt!UlAtqStartListen+0x2d&lt;br /&gt;
0014fcb8 5a3bc315 01001418 010013e4 010012d0 w3core!W3_SERVER::StartListen+0xbd&lt;br /&gt;
0014ff0c 0100187c 00000007 00333a30 00000000 w3core!UlW3Start+0x26e&lt;br /&gt;
0014ff44 01001a27 00000007 00333a30 003348c8 w3wp!wmain+0x22a&lt;br /&gt;
0014ffc0 7d4e7d42 00000000 00000000 fffdf000 w3wp!wmainCRTStartup+0x12f&lt;br /&gt;
0014fff0 00000000 010018f8 00000000 000000c8 kernel32!BaseProcessStart+0x28&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
STACK_COMMAND:  ~0s; .ecxr ; kb&lt;br /&gt;
&lt;br /&gt;
FOLLOWUP_IP: &lt;br /&gt;
ntdll_7d600000!ZwWaitForSingleObject+15&lt;br /&gt;
7d61c846 c20c00          ret     0Ch&lt;br /&gt;
&lt;br /&gt;
SYMBOL_STACK_INDEX:  0&lt;br /&gt;
&lt;br /&gt;
SYMBOL_NAME:  ntdll!ZwWaitForSingleObject+15&lt;br /&gt;
&lt;br /&gt;
FOLLOWUP_NAME:  MachineOwner&lt;br /&gt;
&lt;br /&gt;
MODULE_NAME: ntdll_7d600000&lt;br /&gt;
&lt;br /&gt;
IMAGE_NAME:  ntdll.dll&lt;br /&gt;
&lt;br /&gt;
DEBUG_FLR_IMAGE_TIMESTAMP:  499007dc&lt;br /&gt;
&lt;br /&gt;
FAILURE_BUCKET_ID:  ZEROED_STACK_80000003_ntdll.dll!ZwWaitForSingleObject&lt;br /&gt;
&lt;br /&gt;
BUCKET_ID:  X64_APPLICATION_FAULT_ZEROED_STACK_ntdll!ZwWaitForSingleObject+15&lt;br /&gt;
&lt;br /&gt;
WATSON_IBUCKET:  395708677&lt;br /&gt;
&lt;br /&gt;
WATSON_IBUCKETTABLE:  1&lt;br /&gt;
&lt;br /&gt;
WATSON_STAGEONE_URL:  &lt;a href=&quot;http://watson.microsoft.com/StageOne/w3wp_exe/6_0_3790_3959/45d6968e/unknown/0_0_0_0/bbbbbbb4/80000003/00000000.htm?Retriage=1&quot;  target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;watson.microsoft.com/StageOne/w3wp_exe/6...00000.htm?Retriage=1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Followup: MachineOwner&lt;br /&gt;
---------&lt;br /&gt;
&lt;br /&gt;
0:000:x86&amp;gt; ~*k&lt;br /&gt;
&lt;br /&gt;
.  0  Id: d04c.68c8 Suspend: 0 Teb: fffdb000 Unfrozen&lt;br /&gt;
ChildEBP RetAddr  &lt;br /&gt;
0014fc0c 7d4d8c9e ntdll_7d600000!ZwWaitForSingleObject+0x15&lt;br /&gt;
0014fc7c 7d4d8c0d kernel32!WaitForSingleObjectEx+0xac&lt;br /&gt;
0014fc90 5a364692 kernel32!WaitForSingleObject+0x12&lt;br /&gt;
0014fca0 5a366f27 w3dt!WP_CONTEXT::RunMainThreadLoop+0x10&lt;br /&gt;
0014fca8 5a3af3dd w3dt!UlAtqStartListen+0x2d&lt;br /&gt;
0014fcb8 5a3bc315 w3core!W3_SERVER::StartListen+0xbd&lt;br /&gt;
0014ff0c 0100187c w3core!UlW3Start+0x26e&lt;br /&gt;
0014ff44 01001a27 w3wp!wmain+0x22a&lt;br /&gt;
0014ffc0 7d4e7d42 w3wp!wmainCRTStartup+0x12f&lt;br /&gt;
0014fff0 00000000 kernel32!BaseProcessStart+0x28&lt;br /&gt;
&lt;br /&gt;
   1  Id: d04c.1003c Suspend: 0 Teb: fffd8000 Unfrozen&lt;br /&gt;
ChildEBP RetAddr  &lt;br /&gt;
0088fea4 7d63f521 ntdll_7d600000!ZwWaitForMultipleObjects+0x15&lt;br /&gt;
0088ff48 7d63f9a8 ntdll_7d600000!EtwpWaitForMultipleObjectsEx+0xf7&lt;br /&gt;
0088ffb8 7d4dfe37 ntdll_7d600000!EtwpEventPump+0x27f&lt;br /&gt;
0088ffec 00000000 kernel32!BaseThreadStart+0x34&lt;br /&gt;
&lt;br /&gt;
   2  Id: d04c.16cc Suspend: 0 Teb: fffd5000 Unfrozen&lt;br /&gt;
ChildEBP RetAddr  &lt;br /&gt;
0104ffa0 7d634d89 ntdll_7d600000!NtDelayExecution+0x15&lt;br /&gt;
0104ffb8 7d4dfe37 ntdll_7d600000!RtlpTimerThread+0x47&lt;br /&gt;
0104ffec 00000000 kernel32!BaseThreadStart+0x34&lt;br /&gt;
&lt;br /&gt;
   3  Id: d04c.3c24 Suspend: 0 Teb: fffad000 Unfrozen&lt;br /&gt;
ChildEBP RetAddr  &lt;br /&gt;
010cff74 7d62e159 ntdll_7d600000!ZwRemoveIoCompletion+0x15&lt;br /&gt;
010cffb8 7d4dfe37 ntdll_7d600000!RtlpWorkerThread+0x3d&lt;br /&gt;
010cffec 00000000 kernel32!BaseThreadStart+0x34&lt;br /&gt;
&lt;br /&gt;
   4  Id: d04c.11e0c Suspend: 0 Teb: fffaa000 Unfrozen&lt;br /&gt;
ChildEBP RetAddr  &lt;br /&gt;
0116fd1c 7da3da80 ntdll_7d600000!ZwReplyWaitReceivePortEx+0x12&lt;br /&gt;
0116ff84 7da45eac rpcrt4!LRPC_ADDRESS::ReceiveLotsaCalls+0x198&lt;br /&gt;
0116ff8c 7da45dd0 rpcrt4!RecvLotsaCallsWrapper+0xd&lt;br /&gt;
0116ffac 7da45e94 rpcrt4!BaseCachedThreadRoutine+0x9d&lt;br /&gt;
0116ffb8 7d4dfe37 rpcrt4!ThreadStartRoutine+0x1b&lt;br /&gt;
0116ffec 00000000 kernel32!BaseThreadStart+0x34&lt;br /&gt;
&lt;br /&gt;
   5  Id: d04c.4ae0 Suspend: 0 Teb: fffa7000 Unfrozen&lt;br /&gt;
ChildEBP RetAddr  &lt;br /&gt;
011eff0c 7d4d0ec9 ntdll_7d600000!NtDelayExecution+0x15&lt;br /&gt;
011eff74 7d4d14ef kernel32!SleepEx+0x68&lt;br /&gt;
011eff84 776bbb0f kernel32!Sleep+0xf&lt;br /&gt;
011eff90 776bbab4 ole32!CROIDTable::WorkerThreadLoop+0x14&lt;br /&gt;
011effac 776b1704 ole32!CRpcThread::WorkerLoop+0x26&lt;br /&gt;
011effb8 7d4dfe37 ole32!CRpcThreadCache::RpcWorkerThreadEntry+0x20&lt;br /&gt;
011effec 00000000 kernel32!BaseThreadStart+0x34&lt;br /&gt;
&lt;br /&gt;
   6  Id: d04c.f2e8 Suspend: 0 Teb: fffa4000 Unfrozen&lt;br /&gt;
ChildEBP RetAddr  &lt;br /&gt;
013ef458 7d628698 ntdll_7d600000!ZwWaitForSingleObject+0x15&lt;br /&gt;
013ef494 7d628596 ntdll_7d600000!RtlpWaitOnCriticalSection+0x1a3&lt;br /&gt;
013ef4b4 67a86482 ntdll_7d600000!RtlEnterCriticalSection+0xa8&lt;br /&gt;
WARNING: Stack unwind information not available. Following frames may be wrong.&lt;br /&gt;
013ef594 7c4239cb hotlinkprot!TerminateFilter+0x5462&lt;br /&gt;
013ef5e4 fa375121 msvcp80!std::basic_string&amp;lt;char,std::char_traits&amp;lt;char&amp;gt;,std::allocator&amp;lt;char&amp;gt; &amp;gt;::assign+0x6a&lt;br /&gt;
00000000 00000000 0xfa375121&lt;br /&gt;
&lt;br /&gt;
   7  Id: d04c.4ce8 Suspend: 0 Teb: fffa1000 Unfrozen&lt;br /&gt;
ChildEBP RetAddr  &lt;br /&gt;
0146f458 7d628698 ntdll_7d600000!ZwWaitForSingleObject+0x15&lt;br /&gt;
0146f494 7d628596 ntdll_7d600000!RtlpWaitOnCriticalSection+0x1a3&lt;br /&gt;
0146f4b4 67a86482 ntdll_7d600000!RtlEnterCriticalSection+0xa8&lt;br /&gt;
WARNING: Stack unwind information not available. Following frames may be wrong.&lt;br /&gt;
0146f594 7c4239cb hotlinkprot!TerminateFilter+0x5462&lt;br /&gt;
0146f5e4 fa4f5121 msvcp80!std::basic_string&amp;lt;char,std::char_traits&amp;lt;char&amp;gt;,std::allocator&amp;lt;char&amp;gt; &amp;gt;::assign+0x6a&lt;br /&gt;
00000000 00000000 0xfa4f5121&lt;br /&gt;
&lt;br /&gt;
   8  Id: d04c.2720 Suspend: 0 Teb: fff9e000 Unfrozen&lt;br /&gt;
ChildEBP RetAddr  &lt;br /&gt;
014ef458 7d628698 ntdll_7d600000!ZwWaitForSingleObject+0x15&lt;br /&gt;
014ef494 7d628596 ntdll_7d600000!RtlpWaitOnCriticalSection+0x1a3&lt;br /&gt;
014ef4b4 67a86482 ntdll_7d600000!RtlEnterCriticalSection+0xa8&lt;br /&gt;
WARNING: Stack unwind information not available. Following frames may be wrong.&lt;br /&gt;
014ef594 7c4239cb hotlinkprot!TerminateFilter+0x5462&lt;br /&gt;
014ef5e4 fa475121 msvcp80!std::basic_string&amp;lt;char,std::char_traits&amp;lt;char&amp;gt;,std::allocator&amp;lt;char&amp;gt; &amp;gt;::assign+0x6a&lt;br /&gt;
00000000 00000000 0xfa475121&lt;br /&gt;
&lt;br /&gt;
   9  Id: d04c.553c Suspend: 0 Teb: fff9b000 Unfrozen&lt;br /&gt;
ChildEBP RetAddr  &lt;br /&gt;
0156f458 7d628698 ntdll_7d600000!ZwWaitForSingleObject+0x15&lt;br /&gt;
0156f494 7d628596 ntdll_7d600000!RtlpWaitOnCriticalSection+0x1a3&lt;br /&gt;
0156f4b4 67a86482 ntdll_7d600000!RtlEnterCriticalSection+0xa8&lt;br /&gt;
WARNING: Stack unwind information not available. Following frames may be wrong.&lt;br /&gt;
0156f594 7c4239cb hotlinkprot!TerminateFilter+0x5462&lt;br /&gt;
0156f5e4 fa5f5121 msvcp80!std::basic_string&amp;lt;char,std::char_traits&amp;lt;char&amp;gt;,std::allocator&amp;lt;char&amp;gt; &amp;gt;::assign+0x6a&lt;br /&gt;
00000000 00000000 0xfa5f5121&lt;br /&gt;
&lt;br /&gt;
  10  Id: d04c.c510 Suspend: 0 Teb: fff98000 Unfrozen&lt;br /&gt;
ChildEBP Re</description>
            <pubDate>Wed, 21 Jul 2010 15:07:48 +0200</pubDate>
        </item>
        <item>
            <title>Thread: Bugcheck Analysis</title>
            <link>http://www.windbg.info/forum/13-cat-crash-dump-analysis-/71-bugcheck-analysis.html</link>
            <author>Edward</author>
            <description>Microsoft (R) Windows Debugger Version 6.9.0003.113 X86&lt;br /&gt;
Copyright (c) Microsoft Corporation. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Loading Dump File [C:\Windows\Minidump\060510-19390-01 begin_of_the_skype_highlighting              060510-19390-01      end_of_the_skype_highlighting.dmp]&lt;br /&gt;
Mini Kernel Dump File: Only registers and stack trace are available&lt;br /&gt;
&lt;br /&gt;
Symbol search path is: SRV*c:\windows\symbols*&lt;a href=&quot;http://msdl.microsoft.com/download/symbols&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;msdl.microsoft.com/download/symbols&lt;/a&gt;&lt;br /&gt;
Executable search path is: &lt;br /&gt;
Windows 7 Kernel Version 7600 MP (2 procs) Free x86 compatible&lt;br /&gt;
Product: WinNt, suite: TerminalServer SingleUserTS&lt;br /&gt;
Built by: 7600.16539.x86fre.win7_gdr.100226-1909&lt;br /&gt;
Kernel base = 0x8280d000 PsLoadedModuleList = 0x82955810&lt;br /&gt;
Debug session time: Sat Jun  5 10:17:58.751 2010 (GMT+2)&lt;br /&gt;
System Uptime: 0 days 0:10:32.533&lt;br /&gt;
Loading Kernel Symbols&lt;br /&gt;
.........................................................................................Missing image name, possible paged-out or corrupt data.&lt;br /&gt;
...............................................................&lt;br /&gt;
Loading User Symbols&lt;br /&gt;
Loading unloaded module list&lt;br /&gt;
.....&lt;br /&gt;
*******************************************************************************&lt;br /&gt;
*                                                                             *&lt;br /&gt;
*                        Bugcheck Analysis                                    *&lt;br /&gt;
*                                                                             *&lt;br /&gt;
*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
Use !analyze -v to get detailed debugging information.&lt;br /&gt;
&lt;br /&gt;
BugCheck 10000050, {fd7f0000, 1, 8284be85, 0}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Could not read faulting driver name&lt;br /&gt;
Missing image name, possible paged-out or corrupt data.&lt;br /&gt;
Missing image name, possible paged-out or corrupt data.&lt;br /&gt;
Probably caused by : win32k.sys ( win32k!PALLOCMEM+29 )&lt;br /&gt;
&lt;br /&gt;
Followup: MachineOwner&lt;br /&gt;
---------</description>
            <pubDate>Sat, 05 Jun 2010 11:38:11 +0200</pubDate>
        </item>
        <item>
            <title>Thread: Unable to load image ntoskrnl.exe - reply by: Chris Cates</title>
            <link>http://www.windbg.info/forum/13-cat-crash-dump-analysis-/69-re-unable-to-load-image-ntkrnlpaexe.html</link>
            <author>Chris Cates</author>
            <description>There does NOT appear to be a descrepancy for the &amp;#039;R2&amp;#039; variant.  We were able to sucessfully download symbols from Microsoft Symbols Server on server A and import/utilize them on server B.&lt;br /&gt;
&lt;br /&gt;
The symbols folder name was &amp;#039;ntkrpamp.pdb&amp;#039;.  There appears to be a dependency on hardware configuration outside of two servers having matching kernels.  I found this interesting, but very logical.&lt;br /&gt;
&lt;br /&gt;
Thanks again for your help and letting me bounce this off of here.&lt;br /&gt;
&lt;br /&gt;
Kind Regards,&lt;br /&gt;
Chris</description>
            <pubDate>Tue, 01 Jun 2010 21:49:16 +0200</pubDate>
        </item>
        <item>
            <title>Thread: Memory Searching issue (command s)</title>
            <link>http://www.windbg.info/forum/16-cat-kernel-mode-debugging/68-memory-searching-issue-command-s.html</link>
            <author>Brett K</author>
            <description>Hello! When I try to use the &amp;#039;s&amp;#039; command to search memory, it was coming up with no results. Upon dumping the memory region where I knew the byte-sequence I was looking for is located, the memory there was showing up as &amp;#039;???&amp;#039; a bunch of question marks. So I used the .pagein extension to page in that memory, and then it showed up. At this point, if I used the &amp;#039;s&amp;#039; command again, it would now find the byte-sequence. The problem I am having is, the images I debug are large (often 5-10mb), and they seem to get paged out all the time, making searching impossible. If I didn&amp;#039;t know the exact address of where to find my byte-sequence, I wouldn&amp;#039;t know which of the several thousand pages I&amp;#039;d need to .pagein to find it. So my question is, is there a way to prevent memory from being paged out, or a way to .pagein an entire executable image?</description>
            <pubDate>Mon, 31 May 2010 00:43:10 +0200</pubDate>
        </item>
        <item>
            <title>Thread: Memory Access errors in the Kernel - reply by: Brett K</title>
            <link>http://www.windbg.info/forum/16-cat-kernel-mode-debugging/67-re-memory-access-errors-in-the-kernel.html</link>
            <author>Brett K</author>
            <description>Thanks again for you help, I fully understand it now!</description>
            <pubDate>Fri, 28 May 2010 22:09:14 +0200</pubDate>
        </item>
        <item>
            <title>Thread: Wrong display of function Names by WinDbg - reply by: Robert Kuster</title>
            <link>http://www.windbg.info/forum/15-cat-user-mode-debugging/66-re-wrong-display-of-function-names-by-windbg.html</link>
            <author>Robert Kuster</author>
            <description>JD, welcome.&lt;br /&gt;
&lt;br /&gt;
Whenever you see a large offset like this mydll!&lt;u&gt;wrongfuncanme+0x33360&lt;/u&gt; it is always a sign of missing symbols. &lt;br /&gt;
&lt;br /&gt;
Now &lt;b&gt;strncpy &lt;/b&gt;is part of the CRT library and thus resides in &lt;b&gt;MSVCR80.DLL&lt;/b&gt; or one of its siblings (usually there comes a new CRT version with every Visual Studio release). Because &lt;b&gt;MSVCR80.DLL&lt;/b&gt; is a Microsoft DLL you can actually get its public PDB symbols from the Microsoft server. More precisely WinDbg will fetch the correct symbols automatically for you from the server, if you set it up correctly. You might read &lt;a href='http://windbg.info/download/doc/pdf/WinDbg_A_to_Z_bw2.pdf' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;WinDbg. From A to Z!&lt;/a&gt; - &amp;quot;Symbols in WinDbg&amp;quot; at &lt;b&gt;slide 24&lt;/b&gt;. Or simply check out the &lt;b&gt;.symfix+&lt;/b&gt; command...&lt;br /&gt;
&lt;br /&gt;
If you aren&amp;#039;t able to get the right PDB files any serious debugger will read at least the export symbols (functions) of your modules. Example: If you open MSVCR80.DLL in Dependency Walker you see all its exported functions. This is the same information that is read and used by IDA or by WinDbg if they fail to get the PDBs. For example in WinDbg:&lt;br /&gt;
&lt;br /&gt;
0:000&amp;gt; ld MSVCR80&lt;br /&gt;
*** ERROR: &lt;u&gt;Symbol file could not be found.  Defaulted to export symbols&lt;/u&gt; for C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989\MSVCR80.dll &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bottom line: WinDbg should show you and will show you the same symbol information as IDA does.&lt;br /&gt;
&lt;br /&gt;
I hope this helps,&lt;br /&gt;
Robert</description>
            <pubDate>Fri, 28 May 2010 16:43:43 +0200</pubDate>
        </item>
        <item>
            <title>Thread: CrashMe Application - reply by: Robert Kuster</title>
            <link>http://www.windbg.info/forum/8-cat-article-discussions/55-re-detail-analysis-of-crashmeexe.html</link>
            <author>Robert Kuster</author>
            <description>Sudhir, &lt;br /&gt;
&lt;br /&gt;
welcome and thanks for your input. In fact an article about setting up WinDbg and analyze CrashMe and its crash dumps is the very next thing I will do over the next weeks. &lt;br /&gt;
&lt;br /&gt;
I hope to see you around,&lt;br /&gt;
Robert</description>
            <pubDate>Sun, 04 Apr 2010 23:53:23 +0200</pubDate>
        </item>
        <item>
            <title>Thread: Determing cause of access denied - USN Journal - reply by: Robert Kuster</title>
            <link>http://www.windbg.info/forum/16-cat-kernel-mode-debugging/54-re-determing-cause-of-access-denied-usn-journal.html</link>
            <author>Robert Kuster</author>
            <description>Hi Will.&lt;br /&gt;
&lt;br /&gt;
Some solutions to this issue have been provided here:&lt;br /&gt;
&lt;a href=&quot;http://www.mydefrag.com/forum/index.php?topic=1131.0&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;www.mydefrag.com/forum/index.php?topic=1131.0&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;To peek under the hood:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Behind the scenes &amp;quot;&lt;b&gt;fsutil usn deletejournal /D C:&lt;/b&gt;&amp;quot; translates into a call too &lt;b&gt;fsutil!DeleteUsnJournal&lt;/b&gt;. Its pseudo-code looks like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;fbcode&quot; style=&quot;width:650px;&quot;&gt;&lt;table cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Code:&amp;#32;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;hr /&gt;&lt;code class=&quot;php&quot;&gt;fsutil!DeleteUsnJournal()&amp;nbsp;&lt;br /&gt;
{&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;fsutil!IsVolumeLocalNTFS(..)&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;hVolume&amp;nbsp;=&amp;nbsp;kernel32!CreateFileW(sVolume);&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;sVolume:&amp;nbsp;&amp;quot;\\.\c:&amp;quot;,&amp;nbsp;OR&amp;nbsp;&amp;quot;\\.\d:&amp;quot;,&amp;nbsp;OR..&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;kernel32!DeviceIoControl(hVolume,&amp;nbsp;FSCTL_DELETE_USN_JOURNAL,&amp;nbsp;..)&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;fsutil!DisplayError(..)&amp;nbsp;&lt;br /&gt;
}&lt;/code&gt;&lt;hr /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
In short you can attach WinDbg to fsutil.exe, set a breakpoint on DeleteUsnJournal, and debug through it. It can actually only fail on two places:&lt;br /&gt;
&lt;br /&gt;
1) as it tries to open a handle to the volume&lt;br /&gt;
2) in the call too &lt;b&gt;DeviceIoControl( FSCTL_DELETE_USN_JOURNAL )&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
After you find the failed function you could execute a &lt;b&gt;!gle&lt;/b&gt; (get last error) in WinDbg. With some luck you will get a hint about what failed. With less luck you might end up debugging &lt;b&gt;FSCTL_DELETE_USN_JOURNAL&lt;/b&gt; throughout kernel mode. The stack in the kernel looks something like this:&lt;br /&gt;
&lt;br /&gt;
1: kd&amp;gt; &lt;b&gt;kb&lt;/b&gt;&lt;br /&gt;
ChildEBP RetAddr Args to Child&lt;br /&gt;
acb11adc b9dbdca6 88928a38 &lt;span style='color: #0000FF'&gt;88666008&lt;/span&gt; acb11b20 &lt;b&gt;Ntfs!NtfsDeleteUsnJournal&lt;/b&gt;&lt;br /&gt;
acb11af0 b9da7adc 88928a38 88666008 acb11b20 Ntfs!NtfsUserFsRequest+0x325&lt;br /&gt;
acb11b04 b9da7a36 88928a38 88666008 8a6c2020 Ntfs!NtfsCommonFileSystemControl+0x44&lt;br /&gt;
acb11b78 804ef19f 8a6c2020 88666008 806e6428 Ntfs!NtfsFsdFileSystemControl+0x116&lt;br /&gt;
acb11b88 80658128 8a7294d8 8a729590 88666008 nt!IopfCallDriver+0x31&lt;br /&gt;
acb11bac b9e26ee5 8a6a4040 00000000 acb11bf0 nt!IovCallDriver+0xa0&lt;br /&gt;
acb11bbc 804ef19f 8a729590 88666008 806e6428 sr!SrFsControl+0x121&lt;br /&gt;
acb11bcc 80658128 889f04c0 88666008 00000000 nt!IopfCallDriver+0x31&lt;br /&gt;
acb11bf0 b9e43837 88666000 889f04c0 8a786040 nt!IovCallDriver+0xa0&lt;br /&gt;
acb11c1c 804ef19f 889f04c0 88666008 806e6428 fltmgr!FltpFsControl+0xd7&lt;br /&gt;
acb11c2c 80658128 8a70e130 806e6410 88666008 nt!IopfCallDriver+0x31&lt;br /&gt;
acb11c50 8057f982 886661bc 8a70e130 88666008 nt!IovCallDriver+0xa0&lt;br /&gt;
acb11c64 805807f7 889f04c0 88666008 8a70e130 nt!IopSynchronousServiceTail+0x70&lt;br /&gt;
acb11d00 805792a8 00000788 00000000 00000000 nt!IopXxxControlFile+0x5c5&lt;br /&gt;
acb11d34 8054163c 00000788 00000000 00000000 &lt;b&gt;nt!NtFsControlFile&lt;/b&gt;+0x2a&lt;br /&gt;
acb11d34 7c90e514 00000788 00000000 00000000 nt!KiFastCallEntry+0xfc&lt;br /&gt;
0007faf8 7c90d3aa 7c80174d 00000788 00000000 ntdll!KiFastSystemCallRet&lt;br /&gt;
0007fbf8 7c9100b8 00090330 0007fcd0 7c910041 ntdll!ZwFsControlFile+0xc&lt;br /&gt;
&lt;br /&gt;
1: kd&amp;gt; &lt;b&gt;!irp&lt;/b&gt; &lt;span style='color: #0000FF'&gt;88666008&lt;/span&gt;&lt;br /&gt;
Irp is active with 10 stacks 10 is current (= 0x886661bc)&lt;br /&gt;
No Mdl: System buffer=887e9400: Thread 88600020: Irp stack trace.&lt;br /&gt;
cmd flg cl &lt;span style='color: #FF0040'&gt;Device&lt;/span&gt; &lt;span style='color: #00BF40'&gt;File&lt;/span&gt; Completion-Context&lt;br /&gt;
&amp;gt;[ d, 0] 4 0 &lt;span style='color: #FF0040'&gt;8a6c2020&lt;/span&gt; &lt;span style='color: #00BF40'&gt;8a70e130&lt;/span&gt; 00000000-00000000&lt;br /&gt;
\FileSystem\Ntfs&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
A good point to start you investigation is &lt;b&gt;nt!NtFsControlFile&lt;/b&gt; as obviously something between it and &lt;b&gt;Ntfs!NtfsDeleteUsnJournal&lt;/b&gt; fails. &lt;br /&gt;
The following breakpoint will stop the kernel for any FSCTL_DELETE_USN_JOURNAL request:&lt;br /&gt;
bu &lt;b&gt;nt!NtFsControlFile&lt;/b&gt; &amp;quot;.if( &lt;b&gt;poi(@esp + 18) == 0x000900f4&lt;/b&gt; ) { .echo ***** FSCTL_DELETE_USN_JOURNAL *****; } .else { g;};&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;br /&gt;
&amp;gt; the sixth parameter is the dwIoControlCode which was passed to DeviceIoControlCode&lt;br /&gt;
&amp;gt; FSCTL_DELETE_USN_JOURNAL == 0x000900f4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also check out these articles:&lt;br /&gt;
&lt;a href='http://www.microsoft.com/msj/0999/journal/journal.aspx' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Keeping an Eye on Your NTFS Drives: the Windows 2000 Change Journal Explained &lt;/a&gt;&lt;br /&gt;
&lt;a href='http://www.microsoft.com/msj/1099/journal2/journal2.aspx' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Keeping an Eye on Your NTFS Drives, Part II: Building a Change Journal Application&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I hope this helps,&lt;br /&gt;
Robert</description>
            <pubDate>Sun, 04 Apr 2010 23:48:07 +0200</pubDate>
        </item>
        <item>
            <title>Thread: See in Memory Descriptor List whats on - reply by: Robert Kuster</title>
            <link>http://www.windbg.info/forum/16-cat-kernel-mode-debugging/53-re-see-in-memory-descriptor-list-whats-on.html</link>
            <author>Robert Kuster</author>
            <description>Steffen welcome.&lt;br /&gt;
&lt;br /&gt;
It is easy to find out which driver is leaking or consuming a lot of memory. &lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Theory&lt;/u&gt;&lt;br /&gt;
In order to use Pool tags one generally has to enable them with GFlags -&amp;gt; System Registry -&amp;gt; &amp;quot;Enable pool tagging&amp;quot;. Luckily on Windows Server 2003 pool tagging is always enabled. From the documentation: &amp;quot;&lt;i&gt;Pool tagging is permanently enabled on Windows Server 2003 and later versions of Windows, including Windows Vista. On these systems, the Enable pool tagging check box on the Global Flags dialog box is dimmed and commands to enable or disable pool tagging fail.&lt;/i&gt;&amp;quot;. Also alongside your WinDbg installation you should find ..\Debugging Tools for Windows (x86)\triage\ &lt;b&gt;pooltag.txt&lt;/b&gt; which lists all tags used by kernel mode components and drivers. Here is what it says about the Mdl tag:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PoolTag&amp;gt; - &amp;lt;binary-name&amp;gt; - &amp;lt;Description&amp;gt;&lt;br /&gt;
&lt;b&gt;Mdl&lt;/b&gt; - &amp;lt;unknown&amp;gt; - &lt;b&gt;Io, Mdls&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
MDLs are described here: &lt;a href='http://www.microsoft.com/whdc/driver/tips/mdl.mspx' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;What Is Really in That MDL?&lt;/a&gt; Further you should &lt;u&gt;use Driver Verifier to track Pool Usage&lt;/u&gt; and configure it as follows:&lt;ul&gt;&lt;li&gt;&amp;quot;Create custom settings&amp;quot; -&amp;gt; Next&lt;/li&gt;&lt;li&gt;&amp;quot;Selet individual settings from a full list&amp;quot; -&amp;gt; Next&lt;/li&gt;&lt;li&gt;Select &amp;quot;Pool tracking&amp;quot; -&amp;gt; Next&lt;/li&gt;&lt;li&gt;&amp;quot;Automatically select all drivers installed on this computer&amp;quot; -&amp;gt; Finish, Restart computer&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
Start Driver Verifier Manager again an select &amp;quot;Display information about currently verified drivers&amp;quot; -&amp;gt; Next (3x). Now you will see the pool usage of each driver:&lt;br /&gt;
&lt;br /&gt;
   &lt;a href='http://windbg.info/images/fbfiles/images/pool_usage.PNG' rel=&quot;lightbox&quot;&gt;&lt;img src='http://windbg.info/images/fbfiles/images/pool_usage.PNG' style='max-width:585px; ' alt='' /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;In WinDbg&lt;/u&gt;&lt;br /&gt;
After enabling driver verifier you can get even more information from WinDbg. Attach WinDbg as a kernel debugger to the target machine and use the following commands:&lt;br /&gt;
&lt;br /&gt;
0: kd&amp;gt; &lt;b&gt;!verifier 1&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Driver Verification List&lt;br /&gt;
&lt;br /&gt;
Entry     State           &lt;span style='color: #00BF40'&gt;NonPagedPool&lt;/span&gt;   PagedPool   &lt;span style='color: #0040FF'&gt;Module&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
8a7e6ee8 Loaded           &lt;span style='color: #00BF40'&gt;00000000&lt;/span&gt;       00000000    &lt;span style='color: #0040FF'&gt;kdcom.dll&lt;/span&gt;&lt;br /&gt;
8a7e6e68 Loaded           &lt;span style='color: #00BF40'&gt;00000000&lt;/span&gt;       00000000    &lt;span style='color: #0040FF'&gt;BOOTVID.dll&lt;/span&gt;&lt;br /&gt;
8a7e6df0 Loaded           &lt;span style='color: #00BF40'&gt;00023708&lt;/span&gt;       00003760    &lt;span style='color: #0040FF'&gt;ACPI.sys&lt;/span&gt;&lt;br /&gt;
8a7e6d70 Loaded           &lt;span style='color: #00BF40'&gt;00000000&lt;/span&gt;       00000000    &lt;span style='color: #0040FF'&gt;WMILIB.SYS&lt;/span&gt;&lt;br /&gt;
8a7e6480 Loaded           &lt;span style='color: #00BF40'&gt;00003710&lt;/span&gt;       0001b310    &lt;span style='color: #0040FF'&gt;pci.sys&lt;/span&gt;&lt;br /&gt;
....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; to see all individual allocations of each driver&lt;br /&gt;
0: kd&amp;gt; &lt;b&gt;!verifier 0x3&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Driver Verification List&lt;br /&gt;
&lt;br /&gt;
Entry     State           &lt;span style='color: #00BF40'&gt;NonPagedPool&lt;/span&gt;   PagedPool   &lt;span style='color: #0040FF'&gt;Module&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
8a7e6df0 Loaded           &lt;span style='color: #00BF40'&gt;00023708&lt;/span&gt;       00003760    &lt;span style='color: #0040FF'&gt;ACPI.sys&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Current Pool Allocations  &lt;span style='color: #00BF40'&gt;00000059&lt;/span&gt;    00000023&lt;br /&gt;
Current Pool Bytes        &lt;span style='color: #00BF40'&gt;00023708&lt;/span&gt;    00003760&lt;br /&gt;
Peak Pool Allocations     &lt;span style='color: #00BF40'&gt;000000d3&lt;/span&gt;    0000002d&lt;br /&gt;
Peak Pool Bytes           &lt;span style='color: #00BF40'&gt;00024b88&lt;/span&gt;    00003be8&lt;br /&gt;
&lt;br /&gt;
&lt;span style='color: #FF0080'&gt;PoolAddress  SizeInBytes    Tag       CallersAddress&lt;/span&gt;&lt;br /&gt;
e10115a8     0x00000080     AcpM      b9fa1c47&lt;br /&gt;
8a783148     0x00000018     AcpS      b9f7fabb&lt;br /&gt;
8a7bd148     0x00000018     AcpS      b9f7fae7&lt;br /&gt;
8a786a10     0x00000030     AcpS      b9f836a6&lt;br /&gt;
8a7c0130     0x00000030     AcpR      b9f877c9&lt;br /&gt;
....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this helps,&lt;br /&gt;
Robert</description>
            <pubDate>Sat, 03 Apr 2010 15:17:47 +0200</pubDate>
        </item>
        <item>
            <title>Thread: Common WinDbg Commands (Thematically Grouped) - reply by: Robert Kuster</title>
            <link>http://www.windbg.info/forum/8-cat-article-discussions/52-re-break-on-driver-load-question-from-kam.html</link>
            <author>Robert Kuster</author>
            <description>Kam,&lt;br /&gt;
&lt;br /&gt;
In general you don&amp;#039;t need symbols to know the entry point of a PE image. The entry point is conveniently stored to the PE header and can be read from it. Further the OS loader loads an image into memory (be it an EXE, DLL, or kernel mode driver) and calls its entry point thereafter. In other words by the time DriverEntry is called the driver will always be loaded. If all you need is break into WinDbg after a driver is loaded but before its entry point is called the situation is simple. And if you want to break even before the image is loaded into memory the situation is still simple enough. I described both scenarios bellow.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;1) TODOs - break after driver load &amp;amp; before its entry point is called&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
1) Break into WinDbg -&amp;gt; Debug (menu) -&amp;gt; Event Filters&lt;br /&gt;
2) In the &amp;quot;Event Filters&amp;quot; select the &amp;quot;&lt;b&gt;Load module&lt;/b&gt;&amp;quot; event&lt;br /&gt;
   &amp;gt; select &lt;b&gt;Execution -&amp;gt; Enabled&lt;/b&gt;&lt;br /&gt;
   &amp;gt; click &lt;b&gt;Arguments&lt;/b&gt; and enter the name of the driver in question (&lt;b&gt;77fba431&lt;/b&gt; in our case)&lt;br /&gt;
&lt;br /&gt;
 &lt;a href='http://windbg.info/images/fbfiles/images/event_filters.PNG' rel=&quot;lightbox&quot;&gt;&lt;img src='http://windbg.info/images/fbfiles/images/event_filters.PNG' style='max-width:585px; ' alt='' /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
With this settings WinDbg will brake after loading any driver with the name 77fba431 and &lt;u&gt;before calling its entry point&lt;/u&gt;. Here is what happens:&lt;br /&gt;
&lt;br /&gt;
0: kd&amp;gt;&lt;b&gt; .lastevent&lt;/b&gt;&lt;br /&gt;
Last event: Load module &lt;b&gt;77fba431.sys&lt;/b&gt; at &lt;span style='color: #0000FF'&gt;ba644000&lt;/span&gt;&lt;br /&gt;
  debugger time: Wed Mar 31 21:12:56.937 2010 (GMT+2)&lt;br /&gt;
&lt;br /&gt;
0: kd&amp;gt;&lt;b&gt; lm vm 77fba431&lt;/b&gt;&lt;br /&gt;
start    end        module name&lt;br /&gt;
&lt;span style='color: #0000FF'&gt;ba644000&lt;/span&gt; ba645e00   77fba431   (deferred)             &lt;br /&gt;
    Image path: 77fba431.sys&lt;br /&gt;
    Image name: 77fba431.sys&lt;br /&gt;
    Timestamp:        Tue Mar 30 20:10:51 2010 (4BB23EAB)&lt;br /&gt;
    CheckSum:         0000AD61&lt;br /&gt;
    ImageSize:        00001E00&lt;br /&gt;
    Translations:     0000.04b0 0000.04e4 0409.0&lt;span style='color: #0000FF'&gt;&lt;/span&gt;4b0 0409.04e4&lt;br /&gt;
&lt;br /&gt;
;get ImageEntry (== DriverEntry)&lt;br /&gt;
0: kd&amp;gt;&lt;b&gt; ? $iment( &lt;span style='color: #0000FF'&gt;ba644000&lt;/span&gt;)&lt;/b&gt;&lt;br /&gt;
Evaluate expression: -1167828646 = &lt;span style='color: #FF4040'&gt;ba64595a&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
;now that we have the DriverEntry address we can conveniently set a breakpoint on it&lt;br /&gt;
0: kd&amp;gt;&lt;b&gt; bp &lt;span style='color: #FF4040'&gt;ba64595a&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
*** ERROR: Module load completed but symbols could not be loaded for 77fba431.sys&lt;br /&gt;
&lt;br /&gt;
0: kd&amp;gt;&lt;b&gt; bl&lt;/b&gt;&lt;br /&gt;
 0 e &lt;span style='color: #FF4040'&gt;ba64595a&lt;/span&gt;     0001 (0001) 77fba431+0x195a&lt;br /&gt;
&lt;br /&gt;
0: kd&amp;gt;&lt;b&gt; g&lt;/b&gt;&lt;br /&gt;
Breakpoint 0 hit&lt;br /&gt;
77fba431+0x195a:&lt;br /&gt;
&lt;span style='color: #FF4040'&gt;ba64595a&lt;/span&gt; 8bff            mov     edi,edi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;2) TODOs - break before our driver is loaded into memory (XP SP 3)&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Behind the scenes a driver is loaded by &lt;b&gt;nt!IopLoadDriver&lt;/b&gt;. Its pseudo-code looks like this: &lt;br /&gt;
&lt;div class=&quot;fbcode&quot; style=&quot;width:650px;&quot;&gt;&lt;table cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Code:&amp;#32;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;hr /&gt;&lt;code class=&quot;php&quot;&gt;nt!IopLoadDriver(&amp;nbsp;hRegKeyOfDriver,&amp;nbsp;...)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;get&amp;nbsp;full&amp;nbsp;path&amp;nbsp;of&amp;nbsp;our&amp;nbsp;driver&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;UNICODE_STRING&amp;nbsp;driverPath&amp;nbsp;=&amp;nbsp;call&amp;nbsp;nt!IopBuildFullDriverPath(...);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;load&amp;nbsp;driver&amp;nbsp;into&amp;nbsp;memory&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;call&amp;nbsp;nt!MmLoadSystemImage(&amp;nbsp;driverPath&amp;nbsp;,&amp;nbsp;...)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;retrieve&amp;nbsp;drivers&amp;nbsp;entry&amp;nbsp;point&amp;nbsp;and&amp;nbsp;call&amp;nbsp;it&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;call&amp;nbsp;nt!RtlImageNtHeader&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;call&amp;nbsp;nt!IopPrepareDriverLoading&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dword&amp;nbsp;ptr&amp;nbsp;[edi+2Ch]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;call&amp;nbsp;DriverEntry&lt;br /&gt;
}&lt;/code&gt;&lt;hr /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
With this on mind we can use the following conditional breakpoint. It will cause WinDbg to break if the driver being loaded contains the name &amp;quot;77fba431&amp;quot; and continue execution in any other cases:&lt;br /&gt;
&lt;br /&gt;
&lt;span style='color: #FF0000'&gt;&lt;b&gt;bu nt!IopLoadDriver&lt;/b&gt; &amp;quot;.block {as /c HandleOutput &lt;b&gt;!handle poi(@esp+4)&lt;/b&gt;};  .block {.if ( $spat( \&amp;quot;${HandleOutput}\&amp;quot;, \&amp;quot;*&lt;b&gt;77fba431&lt;/b&gt;*\&amp;quot; ) ) { .echo ***** Loading our driver *****; ad *; } .else { ad *; g;}};&amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;ul&gt;&lt;li&gt;!handle poi(@esp+4)    ...... get handle information and registry path of hRegKeyOfDriver; store it into HandleOutput (string alias)&lt;/li&gt;&lt;li&gt;$spat( &amp;quot;${HandleOutput}&amp;quot;, &amp;quot;*77fba431*&amp;quot; ) .... is 77fba431 found in HandleOutput? If yes break. If not go (g)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
I peeked into &lt;b&gt;nt!IopLoadDriver&lt;/b&gt; on Windows XP SP3. It might bee slightly different on Windows Vista or Windows 7 installations. Nevertheless I think you got the idea and will be able to change the breakpoint if necessary. You could set a similar conditional breakpoint on &lt;b&gt;nt!MmLoadSystemImage&lt;/b&gt;. Note that its first parameter is the path of the driver:&lt;br /&gt;
&lt;br /&gt;
0: kd&amp;gt;&lt;b&gt; kb&lt;/b&gt;&lt;br /&gt;
ChildEBP RetAddr  Args to Child              &lt;br /&gt;
ba507c74 8058107b &lt;span style='color: #008000'&gt;&lt;b&gt;ba507cf8&lt;/b&gt;&lt;/span&gt; 00000000 00000000 &lt;b&gt;nt!MmLoadSystemImage&lt;/b&gt;&lt;br /&gt;
ba507d54 80581487 80000748 00000001 00000000 nt!IopLoadDriver+0x371&lt;br /&gt;
ba507d7c 80538789 80000748 00000000 8a8e8640 nt!IopLoadUnloadDriver+0x45&lt;br /&gt;
ba507dac 805cff72 ae22acb0 00000000 00000000 nt!ExpWorkerThread+0xef&lt;br /&gt;
ba507ddc 8054611e 8053869a 00000001 00000000 nt!PspSystemThreadStartup+0x34&lt;br /&gt;
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16&lt;br /&gt;
&lt;br /&gt;
0: kd&amp;gt;&lt;b&gt; dS &lt;span style='color: #008000'&gt;ba507cf8&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
e10e69b8  &amp;quot;\??\C:\CpDrv\77fba431.sys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this helps,&lt;br /&gt;
Robert</description>
            <pubDate>Fri, 02 Apr 2010 21:15:09 +0200</pubDate>
        </item>
        <item>
            <title>Thread: Using WinDbg to examine ASP.NET applications - reply by: Will Steele</title>
            <link>http://www.windbg.info/forum/14-cat-debugging-of-managed-code-/31-reusing-windbg-to-examine-aspnet-applications.html</link>
            <author>Will Steele</author>
            <description>Awesome. Thanks for the pointers and the link to the PDF.  I had not even seen that one yet.  Looking forward to working with it.  Again, much appreciated.</description>
            <pubDate>Thu, 18 Feb 2010 16:43:00 +0100</pubDate>
        </item>
        <item>
            <title>Thread: Debugging minGW/GCC built DLL in Visual Studio? - reply by: Edward</title>
            <link>http://www.windbg.info/forum/12-cat-symbol-and-source-files-/27-redebugging-mingwgcc-built-dll-in-visual-studio.html</link>
            <author>Edward</author>
            <description>thank for the pointers.&lt;br /&gt;
&amp;#039;looks like PDB absorbed in other IDE that already absorbs PECOFF/STABS and PECOFF/DWARF is a more realistic path. (GCC 4 is pushing out PECOFF/DWARF to complicate issues)....</description>
            <pubDate>Wed, 17 Feb 2010 19:01:43 +0100</pubDate>
        </item>
        <item>
            <title>Thread: Articles/tutorials - reply by: Robert Kuster</title>
            <link>http://www.windbg.info/forum/3-cat-suggestion-box/25-rearticlestutorials.html</link>
            <author>Robert Kuster</author>
            <description>Hi Raminder, &lt;br /&gt;
&lt;br /&gt;
welcome and thanks for your suggestion. To be honest, I&amp;#039;m not yet sure how much I would like to open the article part to the public. It certainly would have advantages, because simply more stuff would be on-line. On the other side I would lose control about the quality of what is on-line. Nevertheless, it is very likely that I will turn at least a part of the article section public so anyone could make contributions there. In the meantime just let me know if you have something really interesting to write on and we will figure out something.&lt;br /&gt;
&lt;br /&gt;
Kind regards,&lt;br /&gt;
Robert</description>
            <pubDate>Wed, 17 Feb 2010 15:48:00 +0100</pubDate>
        </item>
        <item>
            <title>Thread: Other forums - reply by: Robert Kuster</title>
            <link>http://www.windbg.info/forum/11-cat-general-questions/20-reother-forums.html</link>
            <author>Robert Kuster</author>
            <description>Hi Will,&lt;br /&gt;
&lt;br /&gt;
From my point of view your questions perfectly fit to the forum; that is what it actually is about. Help people with WinDbg, regardless to what their initial skills might be. Hm, if you nevertheless want other places there are several. You might check &lt;a href='http://technet.microsoft.com/en-us/sysinternals/default.aspx' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Syinternals&lt;/a&gt; or &lt;a href='http://www.codeproject.com/KB/debug/' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;CodeProject&amp;#039;s&lt;/a&gt; debug section; the Forum at &lt;a href='http://www.osronline.com/' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Open System Resources (OSR)&lt;/a&gt;, or the handy blog from Dmitry called &lt;a href='http://www.dumpanalysis.org/' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Dumpanalysis&lt;/a&gt;; then there is &lt;a href='http://www.debuginfo.com/' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Debuginfo&lt;/a&gt; and so on. But after all you could also take a day off, read &lt;a href='http://windbg.info/download/doc/pdf/WinDbg_A_to_Z_color.pdf' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;WinDbg. From A to Z!&lt;/a&gt;, and play around with &lt;a href='http://windbg.info/apps.html' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;CrashMe&lt;/a&gt; along the way. In fact &lt;a href='http://windbg.info/download/doc/pdf/WinDbg_A_to_Z_color.pdf' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;WinDbg. From A to Z!&lt;/a&gt; answered virtually all of your questions so far. ;)&lt;br /&gt;
&lt;br /&gt;
Hope to see you around, Robert</description>
            <pubDate>Sun, 17 Jan 2010 18:32:03 +0100</pubDate>
        </item>
        <item>
            <title>Thread: Can handled exceptions be seen with WinDbg - reply by: Robert Kuster</title>
            <link>http://www.windbg.info/forum/14-cat-debugging-of-managed-code-/19-recan-handled-exceptions-be-seen-with-windbg.html</link>
            <author>Robert Kuster</author>
            <description>Hi Will, &lt;br /&gt;
&lt;br /&gt;
here I go again. Sorry for the little delay this time. &lt;br /&gt;
&lt;span class=&quot;fb_quote&quot;&gt;Can handled exceptions be seen with WinDbg&lt;/span&gt;&lt;br /&gt;
Short answer: Nope. A handled/dismissed exception isn&amp;#039;t an exception anymore.&lt;br /&gt;
&lt;br /&gt;
Long answer: It depends. The first thing one should know about exceptions is that on Windows (either the environment is Win32, MFC, .NET, or the kernel) exceptions are handled by the OS. To us exceptions are made available through language extensions, for example through the try &amp;amp; except constructs in C++ or C#. Thus it is the OS or more precisely its exception dispatcher that takes care and dispatches exceptions. From the perspective of the exception dispatcher there are two different situations to cover:&lt;ol&gt;&lt;li&gt;A debugger is attached to the application in question&lt;/li&gt;&lt;li&gt;No debugger is attached to the application&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
In case there is a debugger the exception dispatcher does the following:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Attempts to notify the process&amp;#039;s debugger (say, WinDbg). This is known as a &lt;u&gt;first-chance&lt;/u&gt; exception.&lt;br /&gt;
If WinDbg handles the exception (gH - go, exception handled) that&amp;#039;s it. In this case the exception dispatcher won&amp;#039;t notify anyone else about the exception because it has been dismissed.&lt;/li&gt;&lt;li&gt;If WinDbg didn&amp;#039;t handle the exception, the OS then tries to locate a frame-base exception filter (a C++ or C# catch statement, for instance).&lt;br /&gt;
Again, if the exception filter handles the exception that&amp;#039;s it. In this case the exception dispatcher won&amp;#039;t notify anyone else about the exception.&lt;/li&gt;&lt;li&gt;If along the way nobody handled the exception, the exception dispatcher will notify the associated debugger again. This is known as a &lt;u&gt;second-chance or last-chance&lt;/u&gt; exception.&lt;br /&gt;
Again, if the associated debugger handles the exception that&amp;#039;s it. Your application will continue to run fine as if nothing has happened.&lt;br /&gt;
But if the associated debugger doesn&amp;#039;t handle even the second chance exception (for instance, in WinDbg: gN - go not handled command) the process will terminate.&lt;/li&gt;&lt;/ol&gt;The bottom line:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;if a debugger is attached, this debugger will always be notified about any exception in the first place (first-chance exception)&lt;/li&gt;&lt;li&gt;once an exception is handled there is no way to display it in a debugger thereafter; no debugger will be notified about handled exceptions&lt;/li&gt;&lt;/ul&gt;Finally please check &lt;a href='http://windbg.info/download/doc/pdf/WinDbg_A_to_Z_color.pdf' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;WinDbg. From A to Z!&lt;/a&gt; once again.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Refer to slides 17-20 about the exception dispatcher and exceptions in general.&lt;/li&gt;&lt;li&gt;Refer to slides 85-86 about debugging exceptions with WinDbg.&lt;/li&gt;&lt;li&gt;Refer to &lt;u&gt;slides 89-92 about event filters in WinDbg&lt;/u&gt;. In particular you should enable CLR exceptions and CLR notification exceptions for managed applications as otherwise WinDbg will ignore them altogether.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
Said all that there is one more tool to be aware off called &lt;u&gt;Application Verifier&lt;/u&gt;. Application Verifier is a runtime verification tool that monitors an application&amp;#039;s interaction with the Windows OS. Among other things it profiles and tracks all (handled an unhandled) exceptions that occur within a process. Again, check out &lt;a href='http://windbg.info/download/doc/pdf/WinDbg_A_to_Z_color.pdf' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;WinDbg. From A to Z!&lt;/a&gt; and refer to slides 97-102. While Application Verifier will display handled exceptions to you, note that it is just a tracking/logging tool of events that occurred in the past. By no means it will halt a debugger on handled exceptions since this isn&amp;#039;t how exceptions were meant to work in the first place.&lt;br /&gt;
&lt;br /&gt;
Last but not least: You might also try out the sos!DumpAllExceptions command.&lt;br /&gt;
&lt;br /&gt;
I hope this helps, RK :)</description>
            <pubDate>Sun, 17 Jan 2010 18:07:40 +0100</pubDate>
        </item>
        <item>
            <title>Thread: How do source code files help? - reply by: Robert Kuster</title>
            <link>http://www.windbg.info/forum/14-cat-debugging-of-managed-code-/18-rehow-do-source-code-files-help.html</link>
            <author>Robert Kuster</author>
            <description>Hi Will,&lt;br /&gt;
&lt;br /&gt;
we are somewhat out of luck here, I&amp;#039;m afraid. By default WinDbg doesn&amp;#039;t support debugging of managed code natively - at least not in its public releases. See explanation here: &lt;a href='http://groups.google.com/group/microsoft.public.windbg/browse_thread/thread/03530a0643372f66' rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt; No CLR support in the latest debugger release &lt;/a&gt;. The only WinDbg release really supporting it was version 6.7.5.0 which was mistakenly made public. Maybe you can still find it somewhere. If so, you&amp;#039;ll be able to see call stacks with functions names, source code information, and so on in almost the same way as you see it for C++ applications. &lt;br /&gt;
&lt;br /&gt;
To keep it short: You can use WinDbg to obtain some extra information for managed applications via its SOS or SOSEX extension. But in order too turn it into a really useful debugger for manged applications stick to WinDbg version 6.7.5.0&lt;br /&gt;
&lt;br /&gt;
I hope this helps, RK</description>
            <pubDate>Sun, 17 Jan 2010 17:54:49 +0100</pubDate>
        </item>
    </channel>
</rss>
