Memory leaks 如何破译可视泄漏检测器报告的内存泄漏

Memory leaks 如何破译可视泄漏检测器报告的内存泄漏,memory-leaks,openssl,boost-asio,visual-leak-detector,Memory Leaks,Openssl,Boost Asio,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

有人能帮助破译可视泄漏检测器报告的内存泄漏吗

它在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.`..... ........
警告:目视泄漏检测器检测到内存泄漏!
----------0x005D2E38处的块364:20字节----------
泄漏哈希:0x8FD6682B,计数:1,总计20字节
调用堆栈(TID 11424):
0x771CE046(文件和行号不可用):ntdll.dll!RtlAllocater堆
f:\dd\vctools\crt\crtw32\heap\malloc.c(58):utilities-test.exe_堆分配基
f:\dd\vctools\crt\crtw32\misc\dbgheap.c(431):utilities-test.exe_heap\u alloc\u dbg\u impl+0x9字节
f:\dd\vctools\crt\crtw32\misc\dbgheap.c(239):utilities-test.exe_nh_malloc_dbg_impl+0x19字节
f:\dd\vctools\crt\crtw32\misc\dbgheap.c(302):utilities-test.exe_nh_malloc_dbg+0x1D字节
f:\dd\vctools\crt\crtw32\misc\dbgmalloc.c(56):utilities-test.exe!malloc+0x15字节
d:\cfiles\projects\winssl\openssl-1.0.1e\crypto\mem.c(79):utilities-test.exe!默认值\u malloc\u ex+0xB字节
c:\development\cots\boost\boost\asio\ssl\detail\impl\openssl\u init.ipp(127):utilities-test.exe!boost::asio::ssl::detail
::openssl_init_base::实例+0x3F字节
c:\development\cots\boost\boost\asio\ssl\detail\openssl\u init.hpp(61):utilities-test.exe!boost::asio::ssl::detail::open
ssl_init::openssl_init+0x9字节
d:\server\programs\microsoft visual studio 12.0\vc\include\xmemory0(611):utilities-test.exe`'boost::asio::ssl'的动态初始值设定项
::详细信息::openssl_init::实例_''+0xD字节
f:\dd\vctools\crt\crtw32\startup\crt0dat.c(955):utilities-test.exe_初始项
f:\dd\vctools\crt\crtw32\startup\crt0dat.c(308):utilities-test.exe_cinit+0xF字节
f:\dd\vctools\crt\crtw32\startup\crt0.c(237):utilities-test.exe__tmainCRTStartup+0x7字节
f:\dd\vctools\crt\crtw32\startup\crt0.c(165):utilities-test.exe!主循环启动
0x76BA336A(文件和行号不可用):kernel32.dll!BaseThreadInitThunk+0x12字节
0x771D92B2(文件和行号不可用):ntdll.dll!RTLinInitializeExceptionChain+0x63字节
0x771D9285(文件和行号不可用):ntdll.dll!RTLinInitializeExceptionChain+0x36字节
数据:
00 00 B8 2E 5D 00 01 00 00 04 00 00……]。。。。。。。。
50 E1 60 01页“。。。。。。。。

它指向f:因为这些路径保存在调试信息中。构建CRT时,源被放置在驱动器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.`..... ........
无论如何,我也建议尝试其他第三方工具,发现内存泄漏,也许你会得到更多的信息

它在openssl中的某个地方吗

是的,OpenSSL已知内存泄漏。例如,请参见OpenSSL和

这可能会(也可能不会)导致您的问题

可能还有其他人


有人能帮助破译可视泄漏检测器报告的内存泄漏吗

对不起,我帮不了你


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

Microsoft的调试记录包括路径。例如,请参见

但它对您没有帮助,因为您没有Microsoft的构建环境。这是可以忽略的