1 / 33

Silverlight Debugging

Silverlight Debugging. Alan Cobb Independent .NET Consultant Alan Cobb & Associates, Inc. Sacramento, CA Silicon Valley Code Camp 2008 Saturday, November 8, 2008, 3:45pm. About Alan Cobb. Independent consultant for over 20 years on Microsoft platforms Silverlight, WPF, .NET, C#, C++

tab
Download Presentation

Silverlight Debugging

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. Silverlight Debugging Alan Cobb Independent .NET Consultant Alan Cobb & Associates, Inc. Sacramento, CA Silicon Valley Code Camp 2008 Saturday, November 8, 2008, 3:45pm

  2. About Alan Cobb • Independent consultant for over 20 years on Microsoft platforms • Silverlight, WPF, .NET, C#, C++ • One of directors of the SacDotNet User Group • http://www.alancobb.com • http://www.alancobb.com/blog

  3. Another Code Camp Session • “WCF Debugging – Where Do I Start” • Presented by: Petar Vucetin • 9:15AM Sunday: Room 4204 • See also Web Service debugging section of Silverlight documentation: • “Debugging Services for Silverlight Applications”

  4. Presentation Overview • Beginning: • Setting up VS2008 for SL debugging • Alternatives for SL tracing • Intermediate: • SL debugging tools: Fiddler, Silverlight Spy • Advanced: • Performance debugging • SOS extension: Low level .NET debugging

  5. Description on Website • This session will survey a range of Silverlight 2 debugging tools and techniques. At the beginner level we’ll review setting up VS2008 for debugging Silverlight C# and JavaScript code. Then we’ll look at different techniques for trace logging. At an intermediate level we’ll cover three debugging tools I use extensively: Fiddler, Silverlight Spy and NetLimiter. At the advanced level we’ll do some low-level Silverlight .NET debugging with WinDbg and the SOS debugger extension DLL. SOS helps you hunt for memory leaks by giving you a detailed view of the managed heap. Stack traces from SOS can sometimes reveal more about the context of bugs than VS2008 can.

  6. Beginning Level Issues : • Setting up VS 2008 for SL debugging: • Know where the settings are • Turn on 1st chance exception handling • Alternatives for Tracing in SL: • Debug.WriteLine and DebugView • Clog for Silverlight

  7. Setting up VS2008 • Use a Web Application Project • Turn on 1st chance exception handling • Where are the settings? • VS itself, Your project, Web.config, Internet Explorer • Types of breakpoints: • JS, .NET client and server side

  8. Turn on: “break when exception thrown”

  9. Turn on: “break when exception thrown”

  10. Which code? Running Where? Client: Server: Managed: C# Managed: C# Your SL code: Your Web-Service code: Managed: C# / VB JavaScript Managed: C# / VB Silverlight itself: .NET framework: Un-managed: C++ Un-managed: C++

  11. Main Silverlight DLLs

  12. SL Tracing: Debug.WriteLine

  13. SL Tracing: DebugView

  14. SL Tracing: DebugView

  15. SL2 Tracing: CLog

  16. Fiddler • What is it? • HTTP proxy server • What can you do with it? • Watching browser talk to Silverlight sites • Debugging cross domain policy file issues • Timing analysis (slow connection tests)

  17. Fiddler: Watch HTTP conversation

  18. Reflector

  19. Getting generic.xaml with Reflector

  20. Fiddler Demo: Little Loader App

  21. Fiddler: Slow Connection Testing

  22. Fiddler: Download Timing Analysis

  23. Silverlight Spy • How is Silverlight Spy constructed? • Features: • Browse Silverlight element tree • Fly over element tree • See element statistics • Copy XAML for a given branch • Modify element properties interactively • Other

  24. Demo: Silverlight Spy

  25. Debugging Performance Issues • SeemaRamchandani’sPDC2008 talk • FrameRate: • Host.Settings.MaxFrameRate • Host.Settings.EnableFrameRateCounter • CompositionTarget.Rendering event • Host.Settings.EnableRedrawRegions • Profiling: • Xperf ? (A free “profiler” from MS)

  26. Performance: The Render Loop

  27. Performance Instrumentation Demo

  28. SOS: Low-level .NET Debugging • What is SOS? • Extension DLL for WinDbg debugger • Downloading WinDbg setting up SOS • Intro articles on Silverlight and SOS: 1, 2 • Pointing at Microsoft symbol server • What can you use it for? • Examine Silverlight’s managed heap • Get more detailed stack traces

  29. SOS: Where is SOS.DLL?

  30. SOS Demo: Exception and Hang

  31. SOS Demo: Detailed Stack Traces

  32. SOS Demo: Finding Memory Leak

  33. SOS Demo: Finding Memory Leak

More Related