Silverlight and ASP.NET Production Debugging Presentation

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    Courtesy Shaun McAravey

    Favorites, Groups & Events

    Silverlight and ASP.NET Production Debugging Presentation - Presentation Transcript

    1. SoftSource Consulting Portland Code Camp - 2009
    2. Production Debugging of ASP.NET and Silverlight Prashant Sinha Software Architect SoftSource Consulting Portland, OR Contact me – prashant@debuggingblog.com
    3. Introduction • Debugging Challenges in Production Environment • Debugging Tools in Production Environment • How to use them? • Demos
    4. DEMO We will be using demo from http://debuggingblog.com/demos
    5. Common Production Issues • Crash • Worker Process Recycle • Hang • Slow Response • High CPU Usage • High Memory Usage • Exceptions – Unknown • I have no clue, what’s going on • I can’t even reproduce it on my machine
    6. Tools for Production Debugging • WinDbg • DebugDiag • Performance Monitor • PAL – Performance Analysis of Logs • WinDbg Extension – sos.dll and sos2.dll • Sysinternals from http://technet.microsoft.com/en- us/sysinternals/default.aspx for example Process Explorer, Process Monitor
    7. WinDbg/CDB - ADPlus in Action • Memory dumps • ADPlus Usage • ADPlus Modes of Operation • ADPlus configuration file
    8. Demo - ADPlus
    9. Demo - WinDbg
    10. Tip • Execute “windbg –IAS” to associate .dmp file with WinDbg • Execute “windbg –IS” to make windbg system default’s post mortem debugger • Execute “.prefer_dml 1” to set dml output by default, great support in CoreCLR!SOS
    11. Worker Process Recycle • logEventOnRecycle attribute • Memory Based Recycling • Memory Threshold • Overlapped Recycling and their problems • Rapid Fail Protection • Process Orphaning • Periodic Recycle
    12. Worker Process Recycle in Action
    13. ASP.NET Worker Process - Crash Unhandled Exception System.OutOfMemoryException System.StackOverflowException System.ExecutionEngineException Heap Corruption
    14. Shaun McAravey • My Boss • Teaching Windows Internals back in the days • President and CTO of SoftSource Consulting • MVP/Regional Director – Microsoft, back in the days • His Nerdness • More on him at http://www.sftsrc.com/SoftSource_People.aspx • Shares his expertise on Windows Structured Exception Handling(SEH) internals
    15. SEH – Exception Flow Chart
    16. SEH – Termination Flow Chart
    17. Demo – Crash/Unhandled Exception How to determine root cause in production environment?
    18. Analyze First Chance Exception • Event Log • Logs • ADPlus Configuration file and Pseudo Register • Collect Memory Dump on conditional exception • Analyze Dump using WinDbg
    19. Demo - First Chance Exception Unexpected Behavior on First Chance Exception and the root cause analysis in production environment?
    20. Performance/Hang • Long Running Requests • Thread Starvation • Context Switching • Deadlock/WaitHandle • Low CPU hang – lock/external resources/database/web services • High CPU Hang – Heavy load on Server/Infinite loop/Too Much GC/Native Thread spinning on Lock
    21. Analyze Performance Issues in Production • Identify the Server/Process • Use Performance Counter logs • Memory Dump of a Process • Thread Stacks • CPU Usage Stats • Memory Statistics • Managed Heap statistics • ThreadPool Stats
    22. Demo - PAL PAL – Performance Analysis of Logs http://www.codeplex.com/PAL
    23. High Memory Usage(OOM Exception) • Managed Heap – JIT Code Heap – GC Heap – LOB Heap – Loader Heap • Stack • Unmanaged Heap • Memory Fragmentation
    24. Analyze High Memory Usage • Performance Counters Logs– if there is one • Memory Dumps • Thread Statistics – Dead Threads, Blocking Finalizer • Loader Heap Stats • GC Heap Stats • LOB Heap Stats • Cache/Session/ViewState in ASP.NET • GDI Handles • GCHandles
    25. Demo – High Memory Usage
    26. Debugging Silverlight • Production Debugging in Silverlight • CoreCLR • Is Exception/Performance/High Memory Usage any different? • WinDbg/SOS for Silverlight
    27. Debugging Silverlight • Silverlight Spy – courtesy http://silverlightspy.com/silverlightspy/downl oad-silverlight-spy/ • Fiddler – HTTP Debugging Proxy • Browser Memory Dump • WinDbg and sos for silverlight
    28. Silverlight Debugging in Action
    29. Silverlight Buggy App
    30. Cool Features in CoreCLR SOS • DML support • AnalyzeOOM • VerifyObj • FindRoots • GCWhere • ListNearObj • HeapStat • GC History
    31. Demo Debugging Silverlight Application using WinDbg
    32. Debugging Resources Debugging Tidbits http://www.debuggingblog.com The best ASP.NET Debugging Blog http://blogs.msdn.com/tess My Favorite blog in Native Debugging http://www.dumpanalysis.org Debugging ToolBox/Scripts/Cool Debugging Tips http://blogs.msdn.com/debuggingtoolbox Advanced Windows Debugging Blog http://blogs.msdn.com/ntdebugging/
    33. Microsoft Gold Certified Partner • Consulting Services • Software Development • Education and Training Please Visit us at http://www.sftsrc.com
    34. Q&A Q&A
    35. SoftSource Consulting Portland Code Camp - 2009
    SlideShare Zeitgeist 2009

    + prashant sinhaprashant sinha Nominate

    custom

    495 views, 0 favs, 1 embeds more stats

    Silverlight and ASP.NET Production Debugging Presen more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 495
      • 488 on SlideShare
      • 7 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 2
    Most viewed embeds
    • 7 views on http://debuggingblog.com

    more

    All embeds
    • 7 views on http://debuggingblog.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories