| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 802 人关注过本帖
标题:[求助]怎样检测一段程序是否有内存泄露?
只看楼主 加入收藏
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
 问题点数:0 回复次数:9 
[求助]怎样检测一段程序是否有内存泄露?
RT

用代码也可以,用工具也可以。

搜索更多相关主题的帖子: 内存 检测 
2007-06-19 17:02
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 

In Linux, Valgrind is a free tool.
On windows, you may search "memory leak" on www.codeproject.com --- a lot free source code there. That site is one of the greatest free-source websites.

For simple applications, you may overload the

new delete

operators to check. Or you can just use a debugger.


I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-06-19 17:21
yuyunliuhen
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1435
专家分:0
注 册:2005-12-12
收藏
得分:0 

以前有过的,是不是你需要的
http://bbs.bc-cn.net/viewthread.php?tid=136323&star=at#


Go confidently in the  directions of your dreams,live the life you have imagined!Just do it!
It is no use learning without thinking!
2007-06-19 17:21
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
吃饭去了,回来看!
多说点,多说点!

Fight  to win  or  die...
2007-06-19 17:24
yuyunliuhen
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1435
专家分:0
注 册:2005-12-12
收藏
得分:0 

初识Visual Leak Detector 作者:dofty
灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很严重,在短时间内对程序不会有太大的影响,这也使得内存泄漏问题有很强的隐蔽性,不容易被发现。然而不管内存泄漏多么轻微,当程序长时间运行时,其破坏力是惊人的,从性能下降到内存耗尽,甚至会影响到其他程序的正常运行。另外内存问题的一个共同特点是,内存问题本身并不会有很明显的现象,当有异常现象出现时已时过境迁,其现场已非出现问题时的现场了,这给调试内存问题带来了很大的难度。

Visual Leak Detector是一款用于Visual C++的免费的内存泄露检测工具。可以在http://www.codeproject.com/tools/visualleakdetector.asp 下载到。相比较其它的内存泄露检测工具,它在检测到内存泄漏的同时,还具有如下特点:

1、 可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在文件及行号;

2、 可以得到泄露内存的完整数据;

3、 可以设置内存泄露报告的级别;

4、 它是一个已经打包的lib,使用时无须编译它的源代码。而对于使用者自己的代码,也只需要做很小的改动;

5、 他的源代码使用GNU许可发布,并有详尽的文档及注释。对于想深入了解堆内存管理的读者,是一个不错的选择。

可见,从使用角度来讲,Visual Leak Detector简单易用,对于使用者自己的代码,唯一的修改是#include Visual Leak Detector的头文件后正常运行自己的程序,就可以发现内存问题。从研究的角度来讲,如果深入Visual Leak Detector源代码,可以学习到堆内存分配与释放的原理、内存泄漏检测的原理及内存操作的常用技巧等。

本文首先将介绍Visual Leak Detector的使用方法与步骤,然后再和读者一起初步的研究Visual Leak Detector的源代码,去了解Visual Leak Detector的工作原理。


Go confidently in the  directions of your dreams,live the life you have imagined!Just do it!
It is no use learning without thinking!
2007-06-19 17:35
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
恩,我去试试上面说这个工具!

我以前问过,现在再问一次,呵呵~
:没有释放的内存会在程序结束后自动返回吗?

Fight  to win  or  die...
2007-06-19 20:36
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
如果我没记错,
Windows会在程序正常结束(main的大括号完了)后回收分配给程序的所有内存空间...
~~~~~~~~


女侠,约吗?
2007-06-19 21:11
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
那要是不正常呢?就一直泄露哦?我早上调试半天!

Fight  to win  or  die...
2007-06-19 21:19
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
不正常...累积多了... 就 蓝屏了...
我没遇到过, 因为写的都是小程序.. 弄不动1G内存...
你可以故意写个试试..

女侠,约吗?
2007-06-19 21:30
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
恩,也好,去弄个测试系统内存使用的!

Fight  to win  or  die...
2007-06-19 22:01
快速回复:[求助]怎样检测一段程序是否有内存泄露?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034985 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved