首页 > 其他分享 >【Visual Leak Detector】在 VS 高版本中使用 VLD

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

时间:2023-05-05 22:44:45浏览次数:46  
标签:GitHub Leak VLD vld Visual VS 版本 使用

说明

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

目录


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.cppvld_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

如下,点击可跳转。

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

如下,点击可跳转。

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

如下,点击可跳转。

标签:GitHub,Leak,VLD,vld,Visual,VS,版本,使用
From: https://www.cnblogs.com/young520/p/17375599.html

相关文章

  • Visual Components正版智能工厂仿真软件
    VisualComponents是一款用于制造系统仿真的软件,可模拟制造过程,生产线状况以及整体制造系统。用户可以通过VisualComponents实现自动化工厂生产计划、机器人控制和3D模拟等功能。 1、具有强大的3D仿真功能,可以通过该软件创建真实场景,并在此基础上进行各种操作。用户可以在其......
  • 记一次Visual Studio启动WSL远程调试的方法
    安装wsl的方法在此就不提了,就说几点注意事项就行了Internal选项里记得打开tls1.2,不然store打开很可能报错然后在store里安装好Ubuntu后,记得先打开ps然后运行wsl--update然后在打开Ubuntu设置账号密码等安装好后,第一步就是sudoapt-getupdate,sudoapt-getupdateupgrade......
  • Visual Studio 项目的设置
    1、File->New->Project...展开截图2、File->New->Project...点击查看代码......
  • Visual AssistX Version 10.9.2488 Cracked
    任何问题请反馈至邮箱:[email protected](随缘查看邮件)Anyporbs->[email protected]再次声明:本破解补丁仅供交流学习和研究使用,不可用于商业。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。Notice:thispatcherisforcommunication,lear......
  • Visual AssistX Version 10.9.2488 Cracked
    任何问题请反馈至邮箱:[email protected](随缘查看邮件)Anyporbs->[email protected]再次声明:本破解补丁仅供交流学习和研究使用,不可用于商业。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。Notice:thispatcherisforcommunication,lear......
  • 【Visual Leak Detector】核心源码剖析(VLD 1.0)
    说明使用VLD内存泄漏检测工具辅助开发时整理的学习笔记。本篇对VLD1.0源码做内存泄漏检测的思路进行剖析。同系列文章目录可见《内存泄漏检测工具》目录目录说明1.源码获取2.源码文件概览3.源码剖析3.1注册自定义AllocHook函数3.2存储调用堆栈信息3.3生成泄漏检测......
  • gitleaks 保护以及发现安全key的工具
    gitleaks可以方便的扫描git项目,发现潜在的key泄漏问题,可以方便的集成到我们的ci/cd中说明对于需要发现代码中安全key的问题,gitleaks是一个值得使用的工具参考资料https://github.com/gitleaks/gitleakshttps://gitleaks.io/......
  • Visual Studio Code 面板栏错误提示无法消除
    一、问题引入编写了一个C程序,编译报错,故面板栏的出现错误提示。想着直接删除源文件,错误提示就没有了,但实际并不是,它还在这。那么如何将这个错误提示弄没呢?二、解决过程于是又创建了和之前同名源文件,并编程简单无问题的printf("helloworld\n");代码,然后编译运行,这时面板栏的......
  • 如何在nVisual中创建地图场景
    nVisual网络可视化管理系统运用数字孪生技术+管理模式创新,通过统一的数据模型,便捷的对IT电信基础设施、数据中心资源与关联关系进行可视化记录、定位查询、数据分析、智能规划、变更控制、业务映射,迅速为组织建立起精细化、规范化、流程化、可视化的基础设施运维管理体系。以便他们......
  • SQL Server仓储物流公司visual studio发货数据仓库设计
    全文链接:http://tecdat.cn/?p=32241原文出处:拓端数据部落公众号分析师:YanlinLi仓储物流是货物生产销售的重要环节。随着贸易自由化和电子商务的兴起,物流企业快速发展,为提高仓库管理效率,发掘更多的仓库供应商客户,合理配置资源并降低经营成本,经营者在制定经营决策时需要分析仓储......