Your SlideShare is downloading. ×
Silverlight and ASP.NET Production Debugging Presentation
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Silverlight and ASP.NET Production Debugging Presentation

3,312
views

Published on

Silverlight and ASP.NET Production Debugging Presentation at Portland Code Camp 2009

Silverlight and ASP.NET Production Debugging Presentation at Portland Code Camp 2009

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,312
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
34
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Courtesy Shaun McAravey
  • 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