任何人都可以帮助破译Visual Leak Detector报告的内存泄漏吗?
它在openssl中的某个地方吗?
另外,为什么没有这样的驱动器映射时它会引用驱动器f:
上的文件?
类似的post表明它可能与为初始化分配一次的内存有关。
WARNING: Visual Leak Detector detected memory leaks!
---------- Block 364 at 0x005D2E38: 20 bytes ----------
Leak Hash: 0x8FD6682B, Count: 1, Total 20 bytes
Call Stack (TID 11424):
0x771CE046 (File and line number not available): ntdll.dll!RtlAllocateHeap
f:\dd\vctools\crt\crtw32\heap\malloc.c (58): utilities-test.exe!_heap_alloc_base
f:\dd\vctools\crt\crtw32\misc\dbgheap.c (431): utilities-test.exe!_heap_alloc_dbg_impl + 0x9 bytes
f:\dd\vctools\crt\crtw32\misc\dbgheap.c (239): utilities-test.exe!_nh_malloc_dbg_impl + 0x19 bytes
f:\dd\vctools\crt\crtw32\misc\dbgheap.c (302): utilities-test.exe!_nh_malloc_dbg + 0x1D bytes
f:\dd\vctools\crt\crtw32\misc\dbgmalloc.c (56): utilities-test.exe!malloc + 0x15 bytes
d:\cfiles\projects\winssl\openssl-1.0.1e\crypto\mem.c (79): utilities-test.exe!default_malloc_ex + 0xB bytes
c:\development\cots\boost\boost\asio\ssl\detail\impl\openssl_init.ipp (127): utilities-test.exe!boost::asio::ssl::detail
::openssl_init_base::instance + 0x3F bytes
c:\development\cots\boost\boost\asio\ssl\detail\openssl_init.hpp (61): utilities-test.exe!boost::asio::ssl::detail::open
ssl_init<1>::openssl_init<1> + 0x9 bytes
d:\server\programs\microsoft visual studio 12.0\vc\include\xmemory0 (611): utilities-test.exe!`dynamic initializer for 'boost::asio::ssl
::detail::openssl_init<1>::instance_'' + 0xD bytes
f:\dd\vctools\crt\crtw32\startup\crt0dat.c (955): utilities-test.exe!_initterm
f:\dd\vctools\crt\crtw32\startup\crt0dat.c (308): utilities-test.exe!_cinit + 0xF bytes
f:\dd\vctools\crt\crtw32\startup\crt0.c (237): utilities-test.exe!__tmainCRTStartup + 0x7 bytes
f:\dd\vctools\crt\crtw32\startup\crt0.c (165): utilities-test.exe!mainCRTStartup
0x76BA336A (File and line number not available): kernel32.dll!BaseThreadInitThunk + 0x12 bytes
0x771D92B2 (File and line number not available): ntdll.dll!RtlInitializeExceptionChain + 0x63 bytes
0x771D9285 (File and line number not available): ntdll.dll!RtlInitializeExceptionChain + 0x36 bytes
Data:
00 00 00 00 B8 2E 5D 00 01 00 00 00 04 00 00 00 ......]. ........
50 E1 60 01 P.`..... ........
答案 0 :(得分:0)
它指向f:因为这些路径保存在调试信息中。当CRT建成时,源被放置在驱动器f:。
我认为这是一个你不应该(并且无法修复)的泄漏,它看起来像是一次性初始化。
无论如何,我还建议尝试其他第三方工具来查找内存泄漏,可能会获得更多信息。
答案 1 :(得分:0)
它在openssl中的某个地方吗?
是的,OpenSSL已知内存泄漏。例如,请参阅OpenSSL Issue #2561: Memory leak with SSL built-in compressions和How to properly uninitialize OpenSSL。
这可能(或可能不会)导致您的问题。
可能还有其他人。
任何人都可以帮助破译Visual Leak Detector报告的内存泄漏吗?
抱歉,我无法帮助那里。
另外,为什么它会引用驱动器f上的文件:没有这样的驱动器映射?
Microsoft的调试记录包括路径。例如,请参阅Generating and Deploying Debug Symbols。
但是,由于您没有Microsoft的构建环境,因此对您没有帮助。可以安全地忽略。