MemProof(运行内存清道夫)是由AutomatedQA精心打造的一款卓越的免费调试工具,专注于检测内存泄漏和资源泄露。该工具适用于WIN32平台下,特别是DELPHI/C BUILDER开发的应用软件。通过MemProof,用户可以轻松地搜索出未释放的指针和资源。
MemProof的工作原理是在调试模式下运行目标程序,监控程序的创建和释放操作,从而实现资源泄露的检测。在检测过程中,它会根据资源类型进行计数,每次创建资源时计数增加,释放时计数减少。程序结束时根据计数结果即可判断出资源泄露的情况。
为了使用MemProof,需要确保目标程序包含完整的调试信息。以下是设置项目选项的详细步骤:
在“项目-选项”中,进入编译器控制面板,取消选择“优化(代码设计)”选项。
选择“Stack frames(为所有过程强制生成栈帧)”选项。
选择“Debug information(DCU文档中生成调试信息)”选项。
选择“Use Debug DCUS(编译时连接含有调试信息的VCL DCU文档)”选项。
在链接器控制面板中,选择“Include TD32 debug info(将调试信息形成到可执行程序)”选项。
完成设置后即可开始调试。
下面是一个用于调试的示例代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
CloseHandle(1);
end;
接下来按照以下步骤使用MemProof:
打开MemProof,选择“d”种类,包括“Ero(错误)指针”、“Memy(运行内存)”、“GDer(系统目标)”等。
选择“File-Open”打开要调试的可执行文件。
选择“Run-Run”运行程序。
正常退出目标程序,如果有资源泄露,MemProof会自动打开“Resources details”面板,列出五个内存泄漏。
可以查看每个内存泄漏的详细堆栈信息和相应的源码位置。有时可能会提示找不到源码,这是由于没有指定源码搜索路径的缘故。
MemProof有两个部分可以设置源码搜索路径,一个是在“Configure-Search directories”中设置全局路径,另一个是在“Projects-Search directories”中设置当前路径。通常将DELPHI的VCL及共用库代码的路径设置在全局路径中,将项目自身源码的路径设置在当前路径中。
MemProof还提供了便捷的检索VCL源码路径的按钮“Get default for”,使用该按钮可以方便地获取DELPHI的Libray Path。如果安装了VC覆盖了默认调试工选项,则可能获得的是VC的Libray Path,此时只需在Path中去复制即可。
MemProof可以记录之前的检测结果,方便用户进行比较和过滤。
如果需要检测动态链接库,可以选择“Project-Parameters”,在“Host Applications”中选择主体程序,如果需要带cmd,则在“Parameters”中键入cmd,然后就可以开始检测和DELPHI中调试的方式一样。
,MemProof不兼容Attach process的调试方法,这是一个不足之处。
应用特点
MemProof具备以下特点:
专注于内存和资源泄露检测
支持多种资源类型
提供详细的堆栈信息和源码位置
可记录和比较检测结果
支持动态链接库检测
如何使用
确保目标程序包含调试信息。
设置项目选项,确保程序在调试模式下运行。
使用MemProof打开要调试的可执行文件。
运行程序并检查资源泄露情况。
根据检测结果进行修复。
- 新游戏暂无消息 参与地图设计大赛赢取奖励 10-31
- 2K公布免费第三人称英雄射击游戏《Ethos计划》 10-21
- 考试啦,《葫芦娃2》带来原动画细节小考卷(4) 10-21
- 王国两位君主北欧之地隐士有什么用 10-21
- 我的世界种子怎么种植方法 10-21
- 崩坏学园2怎么注销崩坏怎么注销账号 10-21
- 不止《生化危机》外媒精选30款恐怖佳作 10-21
- 王国两位君主北欧之地雷神之锤解锁顺序 10-21
- 梦幻西游梦玲珑穿什么 10-21
- 功夫熊猫阿宝邀你切磋,《蛋仔派对》联动KouKouLove第二弹开启 10-21