VLD does not report all leaks. reports only one.

Oct 27, 2011 at 12:58 PM

here is bug3 that I want your help.

sometimes VLD reports only one leaks, sometimes all leaks.

I debugged simply and found VLD crashes(?) after reporting one leaks.

VLD crashes at SymGetLineFromAddrW64() in CallStack::resolve()

  // It turns out that calls to SymGetLineFromAddrW64 may free the very memory we are scrutinizing here
  // in this method. If this is the case, m_Resolved will be null after SymGetLineFromAddrW64 returns.
  // When that happens there is nothing we can do except crash.
  foundline = SymGetLineFromAddrW64(g_currentProcess, programCounter, &displacement, &sourceInfo);

is there any progress with this bug?

I just modified the  frame value in CallStack::dump to small number, then it report all leaks but not all call stack.

Nov 2, 2011 at 4:13 PM

Maybe because when you try report leaks one of used dll's already unloaded?