Bellek yönetiminde olası sızıntıları (leak) tespit etmek için kullanılabilir. Bu durumda denetim yapılacak uygulama WinDbg ile çalıştırılmalı ya da WinDbg attach özelliği ile ilişkilendirilmelidir. Daha sonra;
- .Net framework 2.X için ".loadby sos mscorwks"
- .Net CLR memory yorumlamada yardımcı olacak uygulamanın etkinleştirilmesi için
- "!dumpheap -stat"
- heap ortamında yer alan ve henüz (GC tarafından) toplanmamış nesneleri ve adreslerini listelemek için
- "!dumpheap -type Netle.Web.4.0.Core.Ontology"
- sınıfına ilişkin nesneleri ve adreslerini listelemek için
- "!EEHeap -gc"
- heap (gen0, gen1, gen2, Large object heap LOH ) adreslerini listelemek için
- "sxi clr"
- etkin çalışan bir thread içinde istisna (exception) çıkması durumunda debug ortamının beklemesi için
ilgili komut satırları çalıştırılabilir....
Peki leak nasıl bulunur?
- Test edilecek yöntem tekrar tekrar çalıştırılır
- Daha sonra, GC.Collect() ile bellek ortamında gereksiz nesne adresleri toplanır
- WinDbg ile heap ortamında kalan nesneler çözümlenir