The !dumpheap -stat command lists the entire managed heap. WinDbg + SOS (or PSSCOR) will let you do this. To troubleshoot this you need to inspect the managed heap. Of course if you have deadlocked threads that will probably affect the application on several levels. Similarly, a deadlocked thread will hold on to whatever roots it holds. Common sources includeĮvents handlers: If the subscriber is not removed the publisher will hold on to it.įinalizers: A blocked finalizer will prevent the finalizer thread from running any other finalizers and thus prevent these instances from being collected. Generally if you have a leak in a managed application, it means that something is not getting collected. There is much more to windbg, google is your friend. You will have to analyze this in the context of your application and see if anything appears unusual. Which lists the type of objects and their count.
DMP file onto WinDbg.ģ)type this into the command window. Here's a very quick guide to help you work with your dmp file:ġ) Run WinDbg, set symbols path (File -> Symbol Search Path) to SRV*c:\symbols*Ģ) Open Crash dump or drag your. NET4 given you can open the dump in Visual Studio. Warning there's a fairly steep learning curve and things might not work exactly as described here so come back with any issues. See my article for more info on taking dump files, eg if you're on XP and need to use windbg to create the dump file. If you're on 64bit and your process is x86 use the 32bit version of Task Manager (C:\Windows\SysWOW64\taskmgr.exe) to take the dump file. You can use Task Manager to create the dump file (right click on process -> Create Dump File). On that, you need to ensure you took the correct dump.
Here is a direct link to the download for x86. You need to make sure you get the correct version x86 or 圆4 depending on your dump.