IT评测·应用市场-qidao123.com

标题: 【Visual Leak Detector】在 VS 2015 中使用 VLD [打印本页]

作者: 北冰洋以北    时间: 2023-4-15 21:08
标题: 【Visual Leak Detector】在 VS 2015 中使用 VLD
说明

使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍在 VS 2015 中使用 VLD。同系列文章目录可见 《内存泄漏检测工具》目录

目录


1. 使用前的准备

参考本人另一篇博客 安装 Visual Leak Detector 下载 vld-2.5.1-setup.exe 并按步骤安装 VLD。注意配置环境的时候一定要把三个选项都打上勾,在一台电脑上配置完成后,用的时候十分方便,包含头文件就可以使用,不需添加任何多余的代码。
3. 在 VS 2015 中使用 VLD

在项目的 main.cpp 文件中,添加头文件:
  1. #include <vld.h>
复制代码
选择 x86 或者 x64 编译器,选择 Debug 模式,编译运行,就可以正常使用了。我的 VS 版本是 Microsoft Visual Studio Professional 2015,VLD 安装目录为 D:\Program Files (x86)\Visual Leak Detector。
3.1 无内存泄漏时的输出报告

程序运行结束后,若没有检测到内存泄漏,VLD 会输出以下 4 行报告:
  1. Visual Leak Detector read settings from: D:\Program Files (x86)\Visual Leak Detector\vld.ini
  2. Visual Leak Detector Version 2.5.1 installed.
  3. No memory leaks detected.
  4. Visual Leak Detector is now exiting.
复制代码
3.2 有内存泄漏时的输出报告

程序运行结束后,若检测到内存泄漏,VLD 会输出以下报告(本例中出现一处内存泄漏,使用 x86 编译器):
  1. Visual Leak Detector read settings from: D:\Program Files (x86)\Visual Leak Detector\vld.ini
  2. Visual Leak Detector Version 2.5.1 installed.
  3. WARNING: Visual Leak Detector detected memory leaks!
  4. ---------- Block 1 at 0x008D8980: 20 bytes ----------
  5.   Leak Hash: 0xC3828EE7, Count: 1, Total 20 bytes
  6.   Call Stack (TID 12948):
  7.     f:\dd\vctools\crt\vcstartup\src\heap\new_array.cpp (15): testVLD.exe!operator new[]() + 0x9 bytes
  8.     e:\cworkspace\vsdemo\testvld\testvld\main.cpp (8): testVLD.exe!main() + 0x7 bytes
  9.     f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (74): testVLD.exe!invoke_main() + 0x1B bytes
  10.     f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (264): testVLD.exe!__scrt_common_main_seh() + 0x5 bytes
  11.     f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (309): testVLD.exe!__scrt_common_main()
  12.     f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp (17): testVLD.exe!mainCRTStartup()
  13.     KERNEL32.DLL!BaseThreadInitThunk() + 0x19 bytes
  14.     ntdll.dll!__RtlUserThreadStart() + 0x2F bytes
  15.     ntdll.dll!_RtlUserThreadStart() + 0x1B bytes
  16.   Data:
  17.     CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
  18.     CD CD CD CD                                                  ........ ........
  19. Visual Leak Detector detected 1 memory leak (56 bytes).
  20. Largest number used: 56 bytes.
  21. Total allocations: 56 bytes.
  22. Visual Leak Detector is now exiting.
复制代码
若使用的是 x64 编译器,报告输出如下:
  1. Visual Leak Detector read settings from: D:\Program Files (x86)\Visual Leak Detector\vld.ini
  2. Visual Leak Detector Version 2.5.1 installed.
  3. “testVLD.exe”(Win32): 已加载“C:\Windows\System32\kernel.appcore.dll”。已加载符号。
  4. WARNING: Visual Leak Detector detected memory leaks!
  5. ---------- Block 1 at 0x00000000650C6AD0: 20 bytes ----------
  6.   Leak Hash: 0x72624394, Count: 1, Total 20 bytes
  7.   Call Stack (TID 12984):
  8.     f:\dd\vctools\crt\vcstartup\src\heap\new_array.cpp (16): testVLD.exe!operator new[]()
  9.     e:\cworkspace\vsdemo\testvld\testvld\main.cpp (8): testVLD.exe!main() + 0xA bytes
  10.     f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (75): testVLD.exe!invoke_main()
  11.     f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (264): testVLD.exe!__scrt_common_main_seh() + 0x5 bytes
  12.     f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (309): testVLD.exe!__scrt_common_main()
  13.     f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp (17): testVLD.exe!mainCRTStartup()
  14.     KERNEL32.DLL!BaseThreadInitThunk() + 0x14 bytes
  15.     ntdll.dll!RtlUserThreadStart() + 0x21 bytes
  16.   Data:
  17.     CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
  18.     CD CD CD CD                                                  ........ ........
  19. Visual Leak Detector detected 1 memory leak (72 bytes).
  20. Largest number used: 72 bytes.
  21. Total allocations: 72 bytes.
  22. Visual Leak Detector is now exiting.
复制代码
4. 无法正常使用的可能原因


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4