在unix有没有检查有无内存未释放的工具

panq 2003-01-22 01:21:51
如题,非常急。请各位大哥不吝赐教。
...全文
37 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chijiao 2003-01-27
  • 打赏
  • 举报
回复
其实很简单,如果你怀疑哪段代码有内存泄漏,则在这段代码的前后添加如下函数调用,
MemCheck(1);
...(怀疑有内存泄漏的代码)
int iRet = MemCheck(0);
MemCheck()返回的就是泄漏的字节数。

附:
int MemCheck(int begin=1)
{
static char *saved=NULL;
char *p = new char[4];

if (begin) {
saved = p;
delete p;
} else
if (p != saved) {
return (p - saved);
}
return 0;
}
youren537 2003-01-26
  • 打赏
  • 举报
回复
用工具 top 查看运行前后的内存状况
dujinsong 2003-01-24
  • 打赏
  • 举报
回复
我猜测你的意思是:如果一个application申请了内存(从堆中),没有释放就退出了,这样会不会导致内存泄漏。

我认为是不会的。

但是,如果是申请的某些资源(如:shared memory, semophore, 等)如果不主动释放,它就留在那儿了。
panq 2003-01-22
  • 打赏
  • 举报
回复
我是sunos5.6
elephant78 2003-01-22
  • 打赏
  • 举报
回复
我在AIX上用的是svmon
panq 2003-01-22
  • 打赏
  • 举报
回复
我目前的问题主要是unix下application启动前后关闭后free memory减少了。
原来以为是系统内存调度的问题,可过了一天free memory也没有增长。
Nvram 2003-01-22
  • 打赏
  • 举报
回复
Rational purify比较好用,但很贵
还有Insure C++也要银子。
用dmalloc吧。
SUN Workshop 6U2代的哪个libgc不好用,我试过。
bugfree 2003-01-22
  • 打赏
  • 举报
回复
using workshop on solaris
panq 2003-01-22
  • 打赏
  • 举报
回复
未说清楚,是对于当前的各个进程能够监视的。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧