Cocos2d-x Win32中使用Visual Leak Detector (for VC++)检查内存泄漏

简介:

Cocos2d-x Win32中使用Visual Leak Detector (for VC++)检查内存泄漏


NOTE:本文引自我于2012-11写于ITPUB上的一篇小文,添加于此主要目前是为方便新开课程《基于CocoStudio开发跨平台拇指空当接龙游戏》学员们参考之用。


Visual Leak Detector(vld,下载地址http://vld.codeplex.com/,当前版本v2.2.3)是VC++环境下一款小巧易用、免费开源的内存泄漏检测工具,相较于VC提供 的CRT Debug Library,vld可以显示导致内存泄漏的完整内存分配调用堆栈。vld具有以下一些特性:

  • 对每个leaked block提供完整的堆栈跟踪,并且包含其源文件及行号信息(符号信息完整时)

  • 能检测出进程内绝大多数类型的leaks,包括COM-based leaks和纯Win32/Win64下的heap-based leaks

  • 可以选择需要排除检测的模块(DLLs或Main EXE)

  • 可定制泄漏清单:保存到文件或发送到debugger输出窗口


使用方法

可以自己编译或使用官网安装包,将vld api和lib文件添加到VC++相应的目录下即可。然后,在需要检测memory leak的模块(.cpp)文件中添加引入vld.h头文件。

简单示例:.............

Debug状态下运行,程序退出后Debugger的OUTPUT窗口如果输出类似于如下的泄露报告清单:



清单列出了内存泄露发生在第几块,所在地址,泄露字节数,调用堆栈,内存内容。双击调用堆栈可以跳转到所在行。

注意:在Release模式下,不会链接vld。















本文转自朱先忠老师51CTO博客,原文链接:http://blog.51cto.com/zhuxianzhong/1441613 ,如需转载请自行联系原作者


相关文章
|
7月前
|
Windows
Microsoft Visual C++2015-2019 安装失败 0x80240017
Microsoft Visual C++2015-2019 安装失败 0x80240017
205 0
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
260 6
|
1月前
|
缓存 Linux
如何检查 Linux 内存使用量是否耗尽?
何检查 Linux 内存使用量是否耗尽?
|
6月前
|
存储 架构师 NoSQL
一文带你走进C++【内存泄漏】
后记 遇到这样一个问题,其实还挺有趣的,虽然是一个小点,但是梳理了一个比较完整的思考过程,希望能对小伙伴们解决相关问题带来参考和想法。
69 4
|
5月前
|
编译器 开发工具 C++
【Python】已解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build
【Python】已解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build
3028 0
|
6月前
|
存储 分布式数据库 API
技术好文:VisualC++查看文件被哪个进程占用
技术好文:VisualC++查看文件被哪个进程占用
|
3月前
|
C++ 内存技术
[转]Visual C++内嵌swf文件并播放
[转]Visual C++内嵌swf文件并播放
|
7月前
|
存储 缓存 监控
深入理解Visual Basic内存管理和性能优化
【4月更文挑战第27天】本文探讨了Visual Basic的内存管理和性能优化,包括自动内存管理(垃圾回收)、堆栈区分以及垃圾回收机制的影响。提出减少临时对象创建、选择值类型、优化字符串操作、利用缓存和异步编程等优化策略。同时,讨论了.NET的代际垃圾回收、大对象堆和手动内存管理。通过案例分析和实践建议,强调理解内存模型和监控性能对提升应用性能的重要性。
111 1
|
4月前
|
安全 编译器 C++
Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?
这些是Microsoft Visual C++不同版本的Redistributable安装包,用于32位系统,确保相关应用正常运行。它们提供C++运行时环境,简化部署流程,支持第三方库及框架,并确保应用兼容性。定期更新可修复问题并引入新功能。在空间有限或需解决程序冲突时可考虑删除,但需谨慎操作以防影响应用稳定性和兼容性。删除前请确认无应用依赖,并通过控制面板安全卸载。
249 1
Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?
|
4月前
|
缓存 Ubuntu Linux
在Linux中,如何检查系统的CPU和内存使用情况?
在Linux中,如何检查系统的CPU和内存使用情况?