Visual Leak Detector在出口处崩溃

所有,

我再次遇到VLD问题。

我正在尝试使用MSVC 2010在Windows 8.1上编写程序。调试器确实报告存在内存泄漏。 所以我打开VLD并重新编译了该二进制文件正在使用的软件和所有库(dll)。

我能够运行该应用程序,并遵循我在调试器中看到泄漏的过程。 但是,当我退出应用程序时,我得到了崩溃,并且消息说:

“未处理的0xXXXXX(vld_x86.dll)中的异常。读取地址0xXXXXX的访问冲突”。

在坠机时的回溯是:

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()行643 + 0x5字节C ++ vld_x86.dll!:: operator()()行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第882行C ++ vld_x86.dll!_execute_onexit_table(_onexit_table_t * const表)第221行+ 0x11字节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)第109行C ++ vld_x86.dll!dllmain_crt_dispatch(HINSTANCE * const实例,const无符号长原因,void * const reserved)行134 + 0x10字节C ++ vld_x86.dll!DllEntryPoint(HINSTANCE__ * hinstDLL,unsigned long fdwReason,void * lpReserved)行298 + 0xc字节C ++ vld_x86.dll!LdrpCallInitRoutine(void * BaseAddress,unsigned long Reason,void * C ontext,unsigned char(void *,unsigned long,_CONTEXT)EntryPoint)98行+ 0xc字节C ++ ntdll.dll!774396de()
[下面的框架可能不正确和/或丢失,没有为ntdll.dll加载的符号] ntdll.dll!77439658()
ntdll.dll中!7745cdc8()
ntdll.dll中!7744ffd8()
ntdll.dll中!7744acfa()

现在我不确定使用什么编译器来构建VLD库,但这里可能会有冲突。 或者我在这儿吠叫错了树,问题在其他地方?

任何人都可以在这里洒一些灯

谢谢。

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

上一篇: Visual Leak Detector crashes on exit

下一篇: Unhandled exception in marshal.cxx under VS2013