1

谁能帮助破译 Visual Leak Detector 报告的内存泄漏?

它在openssl的某个地方吗?

f:另外,当没有映射这样的驱动器时,为什么它指的是驱动器上的文件?

类似的帖子表明这可能与为初始化分配一次的内存有关。

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.`..... ........
4

2 回答 2

1

它在openssl的某个地方吗?

是的,OpenSSL 已知内存泄漏。例如,请参阅 OpenSSL问题 #2561:使用 SSL 内置压缩的内存泄漏如何正确取消初始化 OpenSSL

这可能(或可能不会)对您的问题有影响。

可能还有其他人。


谁能帮助破译 Visual Leak Detector 报告的内存泄漏?

抱歉,我帮不上忙。


另外为什么它引用驱动器 f 上的文件:当没有映射这样的驱动器时?

Microsoft 的调试记录包括路径。例如,请参阅生成和部署调试符号

但这对你没有帮助,因为你没有微软的构建环境。忽略它是安全的。

于 2015-05-07T18:11:54.787 回答
0

它指向 f: 因为这些路径保存在调试信息中。当 CRT 建成时,源被放置在驱动器 f: 上。

我认为这是一个你不应该(也不能)修复的泄漏,它看起来像是一次初始化。

无论如何,我也建议尝试其他发现内存泄漏的 3rd 方工具,可能您会获得更多信息。

于 2015-05-07T09:45:10.487 回答