- 软件介绍
- 软件截图
MemProof(内存清道夫)是AutomatedQA出品的一款非常不错的检测内存泄漏和资源泄漏的免费调试工具,
适合于WIN32平台下使用DELPHI/C++ BUILDER开发的应用程序。利用它可以方便的查找出一些忘记释放的指针以及资源。
它通过在调试模式下运行目标程序,监视程序的创建和释放操作,以达到检测资源泄漏的效果。
监测过程中它会根据资源类型计数,每次创建后增加计数,释放则递减计数,最后程序结束根据计数即可判断出资源的泄漏
使用方法
准备
MemProof要求目标程序带有完熬的调试信息。打开工程选项( Project-Options
1、 Compiler面板
●去掉 Optimization(代码优化)选项」
选择 Stack frames(为所有过程函数强制生成调用琏栈)选项
选择 Debug information(DCU文件中生成调试信息选项
●选择 Use Debug DCUS(编译时链接带有调试信息的Ⅴ CL DCU文件)选项
Linker面板」
元、过程等地址信
选择 clude TD32 debug info(将调试信息生成到可执行文件)选项
●开始
一切准备就绪,现在可以开始调试了
下面是用干调试的一段测武程序:
建一个空白工程,在 Oncreate事件中加入以下代码:
cedure TForml Form Create(Sender TObject);
Closehandlel①);/天
再根据上面的介绍设置好工程选项。打升 MemProof:d
的类型,包括Ero(错误)
指针)、Memy(内存)、GD
er(系统对象)、 Kernel(核心对象)、 Registry(注册表
Resources count-资源数目,Cuem代表当前数目,Pek代表峰值数目
Resources size-资源大小,Cure代表当前大小,Pea#代表峰值大小
选择 File-Open打开要调试的执行文件,再选择 Run-Run开始运行,再正常退出目标
程序,如果有资源泄漏 Memproof侩会自动打开 Resources details面板
Memproc供列出5个内存泄漏,我们可以看到每个内存泄漏都有详细的调用栈情况
以及相对应的源码位置
有时它会提示我们找不到对应的源码,这是应为没有指定源码搜索路径的原因
MemProof有两个位置可以设置源码搜索路径,一个在 Configure- Search directories
Projects-Search Directories前者是设置全局路径,后者是设置当前路径。一般建
在前者中设置 DELPH的VCL以及共用库代码的路径,后者设置工程本身源码的路
径。 MemProof还为用户提供了快捷搜索vCL源码路径的按钮 Get default for,使用
个按钮可以快捷的获取 DELPH的 Libray Path(有的用户安装了vC覆盖了默认调试工
选项,所以有可能得到的是vc的 Libray path,这种情
Path中去拷贝即可
另外 MemProof还可以记录上次的测试结果方便用户做比较,以及过滤等功
如果需要测试动态连接库,可以选择 Project-Parameters,在 Host Applications中选
择主体程序,如果需要带命令行,则在 Parameters中输入命令行,然后就可以开始测试
和 DELPH中调试的方法是一样的
Memproo坏不支持 Attach process的调试方式,这是一个不足的地方
内存清道夫使用方法
准备
MemProof要求目标程序带有完熬的调试信息。打开工程选项( Project-Options
1、 Compiler面板
●去掉 Optimization(代码优化)选项」
选择 Stack frames(为所有过程函数强制生成调用琏栈)选项
选择 Debug information(DCU文件中生成调试信息选项
●选择 Use Debug DCUS(编译时链接带有调试信息的Ⅴ CL DCU文件)选项
Linker面板」
元、过程等地址信
选择 clude TD32 debug info(将调试信息生成到可执行文件)选项
●开始
一切准备就绪,现在可以开始调试了
下面是用干调试的一段测武程序:
建一个空白工程,在 Oncreate事件中加入以下代码:
cedure TForml Form Create(Sender TObject);
Closehandlel①);/天
再根据上面的介绍设置好工程选项。打升 MemProof:d
的类型,包括Ero(错误)
指针)、Memy(内存)、GD
er(系统对象)、 Kernel(核心对象)、 Registry(注册表
Resources count-资源数目,Cuem代表当前数目,Pek代表峰值数目
Resources size-资源大小,Cure代表当前大小,Pea#代表峰值大小
选择 File-Open打开要调试的执行文件,再选择 Run-Run开始运行,再正常退出目标
程序,如果有资源泄漏 Memproof侩会自动打开 Resources details面板
Memproc供列出5个内存泄漏,我们可以看到每个内存泄漏都有详细的调用栈情况
以及相对应的源码位置
有时它会提示我们找不到对应的源码,这是应为没有指定源码搜索路径的原因
MemProof有两个位置可以设置源码搜索路径,一个在 Configure- Search directories
Projects-Search Directories前者是设置全局路径,后者是设置当前路径。一般建
在前者中设置 DELPH的VCL以及共用库代码的路径,后者设置工程本身源码的路
径。 MemProof还为用户提供了快捷搜索vCL源码路径的按钮 Get default for,使用
个按钮可以快捷的获取 DELPH的 Libray Path(有的用户安装了vC覆盖了默认调试工
选项,所以有可能得到的是vc的 Libray path,这种情
Path中去拷贝即可
另外 MemProof还可以记录上次的测试结果方便用户做比较,以及过滤等功
如果需要测试动态连接库,可以选择 Project-Parameters,在 Host Applications中选
择主体程序,如果需要带命令行,则在 Parameters中输入命令行,然后就可以开始测试
和 DELPH中调试的方法是一样的
Memproo坏不支持 Attach process的调试方式,这是一个不足的地方