Browse by Tags
All Tags »
Debugging »
Silverlight (
RSS)
In this entry, we will examine the last two interesting new commands bundled in the Silverlight SOS.DLL – namely !FindRoots and !ListNearObj . (Previously in this series: Basic introduction to Silverlight SOS ; The !AnalyzeOOM command ; The !HeapStat and !GCWhere commands .) The !FindRoots command is specifically oriented at understanding memory leaks and object promotion scenarios. It is a wrapper on top of existing functionality, making analysis more convenient. The key scenario to...
Another SOS.DLL command new in Silverlight is !HeapStat , featuring statistics on the sizes and available space in the various GC heaps and generations. (Previously in this series: Basic steps with Silverlight SOS ; The !AnalyzeOOM command .) Because Silverlight applications run within a browser, there’s typically going to be a single GC heap because the browser’s CLR host uses workstation GC. However, generations and the large object heap (LOH) are still of interest. The following is...
In the conclusion of my previous post on the Silverlight SOS.DLL , I’ve mentioned that some new commands (not present in the desktop CLR version) have been added. The first command we’ll talk about is !AnalyzeOOM , which (as its name implies) analyzes an out of memory condition and explains what went wrong. There are various reasons for out of memory exceptions, and this command can help you to pinpoint exactly what went wrong. I’ve written a simple Silverlight application that allocates 1MB...
I’ve written about SOS.DLL before – it is the ultimate Swiss-army knife for debugging managed applications. Memory leaks, unexpected crashes, high-CPU scenarios, hangs and deadlocks can all be pinpointed using SOS. Silverlight 2.0 offers a model for managed code execution inside the browser, and that managed code will require the same debugging capabilities needed for standard managed applications. The Silverlight CLR ( coreclr.dll ) is a subset of the desktop CLR, but fortunately it...