Visual Leak Detector crashes on exit

ALL,

I again have trouble with VLD.

I am trying to write a program on Windows 8.1 using MSVC 2010. The debugger does report that there are memory leaks. So I turned on VLD and recompiled the software and all libraries (dll) that the binary is using.

I was able to run the application and follow the procedure on which I saw the leaks during the debugger. However when I exit the application I got the crash and the message says:

"Unhandled exception at 0xXXXXX (vld_x86.dll) in . Access violation reading locaton 0xXXXXX".

The backtrace at the time of the crash is:

vld_x86.dll!VisualLeakDetector::reportLeaks(heapinfo_t * heapinfo, bool & firstLeak, Set & aggregatedLeaks, unsigned long threadId) Line 1851 + 0xb bytes C++ vld_x86.dll!VisualLeakDetector::ReportLeaks() Line 2406 C++ vld_x86.dll!VisualLeakDetector::~VisualLeakDetector() Line 643 + 0x5 bytes C++ vld_x86.dll!::operator()() Line 198 C++ vld_x86.dll! crt_seh_guarded_call::operator()<, &, >(__acrt_lock_and_call::__l3:: && setup, _execute_onexit_table::__l22:: & action, __acrt_lock_and_call::__l4:: && cleanup) Line 199 + 0x8 bytes C++ vld_x86.dll!__acrt_lock_and_call< >(__acrt_lock_id lock_id, _execute_onexit_table::__l22:: && action) Line 882 C++ vld_x86.dll!_execute_onexit_table(_onexit_table_t * const table) Line 221 + 0x11 bytes C++ vld_x86.dll!common_exit(const int return_code, _crt_exit_cleanup_mode cleanup_mode, _crt_exit_return_mode return_mode) Line 215 + 0xa bytes C++ vld_x86.dll!_cexit() Line 302 + 0xb bytes C++ vld_x86.dll!dllmain_crt_process_detach(const bool is_terminating) Line 109 C++ vld_x86.dll!dllmain_crt_dispatch(HINSTANCE * const instance, const unsigned long reason, void * const reserved) Line 134 + 0x10 bytes C++ vld_x86.dll!DllEntryPoint(HINSTANCE__ * hinstDLL, unsigned long fdwReason, void * lpReserved) Line 298 + 0xc bytes C++ vld_x86.dll!LdrpCallInitRoutine(void * BaseAddress, unsigned long Reason, void * C ontext, unsigned char (void *, unsigned long, _CONTEXT ) EntryPoint) Line 98 + 0xc bytes C++ ntdll.dll!774396de()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] ntdll.dll!77439658()
ntdll.dll!7745cdc8()
ntdll.dll!7744ffd8()
ntdll.dll!7744acfa()

Now I'm not sure what compiler is used to build the VLD libraries, but maybe there is a conflict here. Or I am barking at wrong tree here and the problem is somewhere else?

Can anyone shed some lights here?

Thank you.

链接地址: http://www.djcxy.com/p/82296.html

上一篇: 在VC6 DLL中的ptr导致崩溃

下一篇: Visual Leak Detector在出口处崩溃