Windows平台一下内存泄漏小工具的开发

本文介绍了一款基于DLL注入技术的内存泄漏检测工具,通过Hook内存分配函数来实时监测和定位内存泄漏源,包括实现原理及使用方法。

开发环境:Win7 64位,VS2013

内存泄漏一直是让C/C++程序员头疼的事情,虽然网上也有许多检查内存泄漏的工具,但是如果能够自己开发一个检查内存泄漏的小工具,并且通过实现一个小工具来深入了解内存分配与释放,以及内存泄漏检查原理,也是对自己能力的极好提升。

下面先展示一下自己开发内存泄漏检查小工具,后面的文章会详细介绍其实现原理。如图:

小工具非常界面非常简单,毕竟界面不是我所关心的重点。1处表示内存泄漏的source源文件;2处表示每一次发生内存分配的请求号,也就是每次调用内存分配函数时的函数调用堆栈记录,双击文件列表可以在1处打开泄漏源文件并定位到泄漏行号;3处代表泄漏汇总窗口,双击一项可以定位到2号窗口的分配请求号位置。

小工具的使用也非常简单,启动Analyzer.exe,如下图:

没错, 该小工具就是利用DLL注入技术,设置想要监听程序的内存分配Hook,监听任意一个分配请求。启动想要监听的程序,如下图:

调用栈窗口会动态刷新内存分配情况,当监听进程结束后,MemoryLeaks窗口是汇总内存泄漏情况。

下面的blog,我会仔细分析这个小工具的实现原理与过程。


源代码参见git地址: https://github.com/Winux1062/MemoryTool

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值