社区
界面
帖子详情
请问没有没有资源泄露检测的工具推荐的?
HongHuer
2010-06-11 03:48:54
最近有个软件貌似有资源泄露,不确定应该怎么找。
想找个工具来检测下。
谢谢推荐。
...全文
146
8
打赏
收藏
请问没有没有资源泄露检测的工具推荐的?
最近有个软件貌似有资源泄露,不确定应该怎么找。 想找个工具来检测下。 谢谢推荐。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
alicktony
2010-06-12
打赏
举报
回复
[Quote=引用 5 楼 honghuer 的回复:]
据我浮浅的理解。vld是检测对内存泄露的吧。
请指教:对gdi资源的泄露可以检查么?
[/Quote]
好像不能
HongHuer
2010-06-12
打赏
举报
回复
据我浮浅的理解。vld是检测对内存泄露的吧。
请指教:对gdi资源的泄露可以检查么?
delphiwcdj
2010-06-12
打赏
举报
回复
用过BounderCheck还不错,有两种模式,很容易上手。也可以自己写代码,转一下别人的:
VC程序内存泄漏检测(转载)
1. 包含头文件和定义:
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
如果定义了_CRTDBG_MAP_ALLOC,打印出来的是文件名和行数等更加直观的信息。
2. 方法一
在程序入口写几个语句:
int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
_CrtSetDbgFlag( tmpFlag );
程序退出时,如果发现有内存泄漏,会自动在DEBUG OUTPUT窗口和DebugView中输出内存泄漏信息。
Ex.
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
int main(int argc, char* argv[])
{
int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
_CrtSetDbgFlag( tmpFlag );
int* p=new int[2];
//delete [] p;
return 0;
}
3. 方法二
在程序任何地方用以下语句:
_CrtDumpMemoryLeaks();
随时检测打印内存泄漏信息,如果有的话。不过此用法有个局限,对于一些全局函数,如果初始化时申请了内存,到程序结束时候才释放,此函数会一直把新申请的内存当作泄漏来对待。
4. 方法三
使用_CrtMemCheckpoint方法,在某段程序中统计泄漏信息。如下:
_CrtMemState s1, s2, s3;
_CrtMemCheckpoint( &s1 );
// 程序段1:DO SOMETHING
_CrtMemCheckpoint( &s2 );
if ( _CrtMemDifference( &s3, &s1, &s2) )
_CrtMemDumpStatistics( &s3 );
可以统计程序段1中是否发生了内存泄漏。
Ex.
void CMfcmemleakDlg::OnOK()
{
// TODO: Add extra validation here
_CrtMemState s1, s2, s3; // 声明内存状态结构变量
_CrtMemCheckpoint( &s1 );// 获取第一个内存状态快照
// 在这里进行内存分配
char* p = new char[2];
p[0] = 'A';
p[1] = 'B';
_CrtMemCheckpoint( &s2 );// 获取第二个内存状态快照
// 比较两个内存快照的差异
if ( _CrtMemDifference( &s3, &s1, &s2) )
_CrtMemDumpStatistics( &s3 );// dump 差异结果
// 输出内存泄漏报告,显示在 Output 窗口的 Debug 页中
_CrtDumpMemoryLeaks();
AfxMessageBox("MFC 程序内存泄漏检测试验");
}
stonewater
2010-06-12
打赏
举报
回复
在任务管理器中就能看出来程序使用gdi句柄的多少,要是一直增加,结合你程序就能判断是否有泄漏了
Eleven
2010-06-11
打赏
举报
回复
Visual Leak Detector
HongHuer
2010-06-11
打赏
举报
回复
谢谢 linglongyouzhi,我去看看。
HongHuer
2010-06-11
打赏
举报
回复
抱歉,补充下。
我说的是 gdi资源 泄露。不是堆内存。
linglongyouzhi
2010-06-11
打赏
举报
回复
用boundschecker或升级版本
最好用的内存泄漏分析
工具
------ tMemMonitor (TMM)
tMemMonitor(TMM)是一款运行时C/C++内存泄漏分析
工具
,其
检测
结果专业、准确,...TMM中引入GC机制,内存
泄露
检测
准确率可达100%,无需内存快照,不影响目标程序性能,极简操作,是每个程序员都值得拥有的开发助手。
BoundsChecker v6.5 (运行时错误
检测
工具
)
调试时语法
没有
问题,代码也
没有
错误,但应用程序运行就是不正常甚至死机,其实这有可能是由于逻辑错误引起的内存溢出或
资源
泄露
等问题,这些错误一般是不容易被
检测
出来的,而这类错误就是BoundsChecker错误
检测
...
C++第3课:C++内存
泄露
检测
原理及案例实战
本课程具体的内容主要包括C++内存
泄露
案例、VS2015内存
泄露
检测
、野指针、VirtualAlloc/HeapAlloc/malloc/new的区别、C++堆和栈的内存管理、栈简介、堆简介、堆与栈区别、栈的内存分配、Windows的虚拟内存技术、...
一文掌握C/C++内存泄漏,防止内存泄漏以及
检测
工具
!
???? 作者:Linux猿 ???...三、内存泄漏
检测
工具
1. Valgrind 2. PurifyPlus 在写 C/C++ 代码的时候,经常需要为程序分配动态内存,难免就会发生内存泄漏的情况,本文就来说一下如何防止 C/C++
java
检测
内存
泄露
的
工具
_内存
泄露
检测
工具
有哪些【图文】
内存
泄露
的内存指的是虚拟内存。如果发生内存
泄露
,最终导致的结果是机器程序运行越来越慢,存储空间越来越不足,一直到整个系统都崩溃。我们平常在使用电脑的...那么内存
泄露
的
检测
工具
有哪些呢?
检测
工具
1.ccmallo...
界面
15,979
社区成员
115,900
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章