Showing posts with label WinDbg. Show all posts
Showing posts with label WinDbg. Show all posts

Tuesday, October 27, 2009

WinDbg symbol path

Following is the path to O/S symbol files used by WinDbg.

SRV*your local symbol folder*http://msdl.microsoft.com/download/symbols

Tuesday, September 22, 2009

WinDbg with managed code

Loading the correct version of SOS is done by: .loadby sos mscorwks.

Useful commands in SOS:
List CLR threads: !threads
Dump managed stack of current thread: !CLRStack
Dump managed stack of current thread with parameters and locals: !CLRStack -a
Dump managed and native stack of current thread: !DumpStack
Break on first chance CLR exceptions: sxe clr
Get IL of method: !ip2md address, then !u result
Display last exception info: !pe (use Event Filters to run the command whenever a CLR exception is thrown)

Another useful tool is SOSEX, which supports deadlock detection, etc.

I was unable to get WinDbg to be the postmortem debugger for all crashes - installing it only seems to work for native applications.

Native commands:
List O/S threads: ~
Change thread by: ~{threadnumber}s or ~~[{threadid}]s
Handle tracing: !htrace

This cheat sheet is also useful.

WinDbg extensions

This blog entry will be updated to keep track of useful extension DLLs used with WinDbg since I don't use WinDbg very often:

SieExtPub.dll: useful for seeing what locks and critical sections are affecting your program. Download at Debugging Tools Download.

Loading the correct version of SOS is done by: .loadby sos mscorwks.