LeakTrack in DebugDiag not capturing stack traces, so not sure where to go from here.
I have a .NET application (NServiceBus process running as a windows service) that has a memory leak. Grows to about 10GB over the course of 5-6 days.
I did a procdump and basic analysis using !address –summary
in WinDbg. I see a heap commit size of 8.6GB.
Next, I ran DebugDiag on the dump for managed memory. There were no red flags at all in the managed memory, so then I attempted to look at the native allocations.
So I DebugDiag (2.1.0.7), and selected
Record call stacks immediately when monitoring for leaks (AKA "FastTrack") NOTE: not recommended when monitoring longer than 15 minutes)
I then ran it for 30 minutes (contrary to the warning). When running the analysis, I get a message that it could not get the call stacks because I either I didn't run it longer than 15 minutes (I did) or that I need to set "Begin recording call stacks immediately" (I did).
So, I decided to try again. I set it to run for 2 hours this time, and did not set it to "Begin recording immediately". Same message.
Here is the virtual memory summary from the 9GB procdump (that didn't have leak detection running)
So what do I need to do to get call stack from DebugDiag? My culprit seems to be in the committed memory (I'm not sure I really understand reserved vs. committed in this context). But have no idea how to go about identifying what the culprit is.
Also not sure why DebugDiag thinks there is 8TB of memory (this is running on a virtual machine, not sure if that is related or not).