windbg + sos: cannon & shotgun

18
WINDBG + SOS: CANNON &SHOTGUN you should include in your toolkit

Upload: demi

Post on 21-Feb-2016

53 views

Category:

Documents


0 download

DESCRIPTION

Windbg + SOS: cannon & shotgun. you should include in your toolkit. Information. Windbg Not fancy but strong. SOS Son of strike. The Tools. SOS Windbg. Part of .NET. Part of Debugging Tools, Download. We already have IDE, why Windbg. We have not IDE in Product Env - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Windbg +  SOS: cannon & shotgun

WINDBG + SOS: CANNON &SHOTGUN

you should include in your toolkit

Page 2: Windbg +  SOS: cannon & shotgun

Information Windbg

Not fancy but strong

SOS Son of strike

Page 3: Windbg +  SOS: cannon & shotgun

The Tools SOS Windbg

Part of .NET

Part of Debugging Tools, Download

Page 4: Windbg +  SOS: cannon & shotgun

We already have IDE, why Windbg

We have not IDE in Product Env We have not source code in Product Env Do not use windbg if you have IDE and

source code

Page 5: Windbg +  SOS: cannon & shotgun

Debugging Open executable (Ctrl + E)

Before CLR boot strap Attach to process (F6)

.detach and qd will leave process running Open Crash dump (Ctrl + D)

Offline debugging

Page 6: Windbg +  SOS: cannon & shotgun

Dumps Task Manager

Vista or newer ADPlus ProcDump

Page 7: Windbg +  SOS: cannon & shotgun

ADPlus Vbs versus exe Crash dump

adplus -crash -pn w3wp.exe -o c:\crashdump

Hang dump adplus -hang -pn w3wp.exe -o c:\

crashdump

Page 8: Windbg +  SOS: cannon & shotgun

Task Manager

Page 9: Windbg +  SOS: cannon & shotgun

Useful Commands

Inspecting CLR !gcroot !finzlizequeue !eeheep !dumpdomain

Meta and code !name2ee !dumpmt !u

Inspecting data !dumpheap !dumpobject (!do) !objsize !dumparray

Inspecting threads !threads !syncblk Clrstack !runaway

Page 10: Windbg +  SOS: cannon & shotgun

Setting up the Windbg srv*c:\symbols*http://

msdl.microsoft.com/download/symbols .loadby sos mscorwks

3.5 and 2.0 loadby sos clr

4.0

Page 11: Windbg +  SOS: cannon & shotgun

Start from Dining Philosophers

Page 13: Windbg +  SOS: cannon & shotgun

Conclusion !syncblk and !clrstack are the key to

dead lock

Page 14: Windbg +  SOS: cannon & shotgun

Crash

Page 16: Windbg +  SOS: cannon & shotgun

Conclusion !printexception (!pe) is key to detect

exception ~*e!clrstack always work but time cost

Page 17: Windbg +  SOS: cannon & shotgun

Scripting .foreach (name {<loop command>})

{<command name} .foreach(myVariable {!dumpheap -min

85000 -short}){.echo myVariable;!do myVariable;.echo *************}

PowerDbg http://powerdbg.codeplex.com/

Page 18: Windbg +  SOS: cannon & shotgun

Q & A Thanks