1 / 18

Windbg + SOS: cannon & shotgun

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

demi
Download Presentation

Windbg + SOS: cannon & shotgun

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Windbg+ SOS: cannon &shotgun you should include in your toolkit

  2. Information • Windbg • Not fancy but strong • SOS • Son of strike

  3. The Tools • SOS • Windbg Part of .NET Part of Debugging Tools, Download

  4. 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

  5. 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

  6. Dumps • Task Manager • Vista or newer • ADPlus • ProcDump

  7. ADPlus • Vbs versus exe • Crash dump • adplus -crash -pn w3wp.exe -o c:\crashdump • Hang dump • adplus-hang -pn w3wp.exe -o c:\crashdump

  8. Task Manager

  9. 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

  10. Setting up the Windbg • srv*c:\symbols*http://msdl.microsoft.com/download/symbols • .loadbysosmscorwks • 3.5 and 2.0 • loadbysosclr • 4.0

  11. Start from Dining Philosophers

  12. Demo • http://www.cnblogs.com/ivenxu/articles/2020974.html

  13. Conclusion • !syncblk and !clrstack are the key to dead lock

  14. Crash

  15. Demo • http://www.cnblogs.com/ivenxu/articles/1970562.html

  16. Conclusion • !printexception (!pe) is key to detect exception • ~*e!clrstack always work but time cost

  17. Scripting • .foreach (name {<loop command>}){<command name} • .foreach(myVariable {!dumpheap -min 85000 -short}){.echo myVariable;!do myVariable;.echo *************} • PowerDbg • http://powerdbg.codeplex.com/

  18. Q & A • Thanks

More Related