【Visual Leak Detector】在 VS 高版本中使用 VLD

这篇具有很好参考价值的文章主要介绍了【Visual Leak Detector】在 VS 高版本中使用 VLD。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明

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

目录
  • 说明
  • 1. 使用前的准备
  • 2. 在 VS 2015 及更早版本中使用 VLD
  • 3. 在 VS 高版本中使用 VLD
    • 3.1 参考资料:在 VS 2017 中使用 VLD
    • 3.2 参考资料:在 VS 2019 中使用 VLD
    • 3.3 参考资料:在 VS 2022 中使用 VLD

1. 使用前的准备

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

2. 在 VS 2015 及更早版本中使用 VLD

可以在 Using-Visual-Leak-Detector 官方文档里看到如何使用 VLD,里面介绍了如何在 Visual C++ 2003/2005/2008/2010/2012/2013 中配置 VLD 的环境、如何使用 VLD。在 VS 2015 中使用 VLD 的方法,可参考本人另一篇博客 在 VS 2015 中使用 VLD。

3. 在 VS 高版本中使用 VLD

v2.5.1 默认只支持到 VS 2015,其使用的 dbghelp.dll 版本为 6.11.1.404。若要在高版本的 Visual Studio 里面使用 VLD ,且想完全使用高版本的开发环境,可以先尝试按 VS2015 的用法来,当出现崩溃、闪退、无法检测已知泄漏等情况时,再考虑修改 VLD 的源码。由于目前本人对此需求不大,所以仅说下个人思路,供日后参考。具体来说,需要解决以下问题:

  • 源码里面有些宏的用法,限制了能编译 VLDVS 版本,例如 _MSC_VER 宏(详见 vld.cpp 第 975~977 行),需要修改,可参考 MSDN - predefined-macros。
  • 高版本的 MFC/CRT/COM 等底层 DLL 若有新的内存分配/释放函数,则需要把这些函数也添加到 IAT hook 的目标函数里面,详见 dllspatches.cpp 与 vld_hooks.cpp。
  • 有些函数在高版本中进行了更新,原先的逻辑在新版本中不适用,典型的如 dbghelp.dll 库的 SymInitialize() 函数(详见 vld.cpp 第 483 行), 这个函数在 10.0 版本的 dbghelp.dll 中的行为不同于 6.11,导致在 VS2019/VS2022 中使用 VLD 时可能出现闪退,参考 GitHub-KindDragon-Vld-Issue#86。

3.1 参考资料:在 VS 2017 中使用 VLD

如下,点击可跳转。文章来源地址https://www.toymoban.com/news/detail-434477.html

  • 博客园 - VS2017 编译使用 VLD,这篇文章写了如何用 VS 2017 编译 VLD,并对源码进行了一些修改,然后在同版本的 VS 项目中使用 。
  • 博客园 - 在 VS2017 中使用 VLD,这篇文章写了如何在 VS 2017 中直接使用 VLD 2.5.1 库,无任何源码修改。
  • MSDN - What happened to vld,这篇文章介绍了如何在 VS 2017 中直接使用 VLD 2.5.1 库,无任何源码修改,但会替换默认的 dbghelp.dll 文件。

3.2 参考资料:在 VS 2019 中使用 VLD

如下,点击可跳转。

  • GitHub-razor950-vld-2.5.2,修改过的 VLD,介绍说支持 2017/2019,参考 GitHub-KindDragon-Vld-Issue#75。
  • GitHub-Azure-vld-2.5.9,修改过的 VLD,更新日志 说支持到 2019,参考 StackOverflow-how-to-install-visual-leak-detector-vld-on-visual-studio-2019。
  • GitHub-oneiric-vld-2.7.0,修改过的 VLD,介绍说支持 2019,参考 GitHub-KindDragon-Vld-Issue#65。
  • CSDN - VS2019 编译 VLD,这篇文章写了如何用 VS 2019 编译 VLD,并对源码进行了一处修改,然后在同版本的 VS 项目中使用 。

3.3 参考资料:在 VS 2022 中使用 VLD

如下,点击可跳转。

  • GitHub-hongxinGuo-vld-2.5.4,修改过的 VLD,介绍说支持 2008~2022,参考 GitHub-KindDragon-Vld-Issue#85。

到了这里,关于【Visual Leak Detector】在 VS 高版本中使用 VLD的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Visual Leak Detector】使用注意事项

    使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍使用 VLD 时的注意事项。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. 官网文档 2. 注意事项 可以在 Using-Visual-Leak-Detector 官方文档里看到如何使用 VLD,里面介绍了如何在 Visual C++ 2003/2005/2008/201

    2023年04月11日
    浏览(36)
  • 使用Visual Leak Detector排查内存泄漏问题

    目录 1、VLD工具概述 2、下载、安装VLD 2.1、下载VLD 2.2、安装VLD 3、VLD安装目录及文件说明

    2024年02月07日
    浏览(43)
  • 【Visual Leak Detector】Release 模式下使用 VLD

    使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍如何在 Release 模式下使用 VLD。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. 思路概述 2. 在 QT 中实践 要在 RELEASE 模式下使用 VLD,必须在包含头文件 vld.h 前预先定义 VLD_FORCE_ENABLE 宏(参考 VLD I

    2023年04月12日
    浏览(41)
  • 【Visual Leak Detector】源码文件概览

    使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇对 VLD 源码包中的各文件用途做个概述。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. 整体概览 2. 文件夹 .teamcity 3 文件夹 lib 3.1 文件夹 cppformat(生成 libformat) 3.2 文件夹 dbghelp 3.3 文件夹 gtest(生成

    2023年04月22日
    浏览(51)
  • 【Visual Leak Detector】源码下载

    使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍 VLD 源码的下载。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. 下载途径 2. 不同下载途径的源文件差异 以 v2.5.1 版本为例,可以到 Github-KindDragon-vld 页面下载 master 的 zip 源码包,如下所示: 也可

    2023年04月20日
    浏览(56)
  • 【Visual Leak Detector】源码编译 VLD 库

    使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍 VLD 源码的编译。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. VLD 库的依赖文件 2. 源码编译生成 VLD 库 3. 配置环境变量 4. 使用 VLD 库 以 vld2.5.1 版本为例,下载源码 后,源码包中各文件的用途可

    2023年04月24日
    浏览(69)
  • 【Visual Leak Detector】源码调试 VLD 库

    使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍 VLD 源码的调试。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. VLD 库源码调试步骤 1.1 设置为启动项目 1.2 设置调试程序 1.3 设置输出目录 1.4 拷贝 vld 依赖文件 1.5 加断点调试 2. 注意事项 以 vld

    2024年02月03日
    浏览(40)
  • 【Visual Leak Detector】核心源码剖析(VLD 1.0)

    使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇对 VLD 1.0 源码做内存泄漏检测的思路进行剖析。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. 源码获取 2. 源码文件概览 3. 源码剖析 3.1 注册自定义 AllocHook 函数 3.2 使用 StackWalk64 获取调用堆栈信息

    2024年02月01日
    浏览(31)
  • 【Visual Leak Detector】核心源码剖析(VLD 2.5.1)

    使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇对 VLD 2.5.1 源码做内存泄漏检测的思路进行剖析。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. 源码获取 2. 源码文件概览 3. 源码剖析 3.1 通过 inline hook 修补 LdrpCallInitRoutine 3.2 通过 IAT hook 替换内存操

    2024年02月03日
    浏览(38)
  • VS(Visual studio)各版本密钥汇总

    亲测好用,留作自用,每次换电脑或者系统必装。 VS2022 专业版:(PRO) TD244-P4NB7-YQ6XK-Y8MMM-YWV2J 企业版:(Enterprise) VHF9H-NXBBB-638P6-6JHCY-88JWH VS2015 2015算是用过vs里面最久的了,感情深,陪伴了完整的大学时光,然后研究生到现在工作,虽然现在开发的少了,但是做游戏的话还是首选

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包