Chinaunix首页 | 论坛 | 博客
  • 博客访问: 627590
  • 博文数量: 603
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 4940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-17 11:04
文章分类

全部博文(603)

文章存档

2011年(1)

2008年(602)

我的朋友

分类:

2008-09-17 11:19:20


()
- ()
-- ()


由 new2007 在 2007-05-14 23:42 发表:

为什么我的Receive函数会发生内存泄漏?

我做了一个服务程序,采用CSocket(Tcp协议)接收前端发送过来的数据并进行处理,程序须24小时运行,调试的时候发现PF使用率不断增加.先用Boundschecker检查内存泄漏,但只报告了MFC的一些资源泄漏(不管了,听说Boundschecker是会查出MFC的问题,但不用过多关心);怀疑是数据处理函数里存在泄漏,于是仔细检查了所有的new 和 malloc,并用CMemoryState类检查处理函数,但也未发现内存泄露;最后用CMemoryState类检查Receive函数时竟然报告有内存泄漏,并且不是每次接收数据都泄漏,而是随机的.按道理CSocket是绝不会有这种低级bug的,于是我想看看接收错误前后的内存状态,就在Receive函数处加了_CrtDumpMemoryLeak函数,想在CMemoryState发现内存泄漏的时候对比Receive前后状态,但这时又有一个奇怪的现象:只要加上了_CrtDumpMemoryLeak,CMemoryState就没有检查到内存泄漏了.我刚开始学习编程,也是第一次用vc,水平比较低实在是搞不明白了,麻烦各位帮我分析一下是什么问题,谢谢了哈!


由 tthxqing 在 2007-05-26 09:17 发表:

这个不可能吧,CSOCKET 对象是new出来的?


由 zhangyq73 在 2007-06-07 14:19 发表:

首先看new和delete是否配对出现。如果还有内存泄露,建议在Debug模式下看看是哪里内存泄露,如果还不行,用.map文件看看


全部时间均为北京时间. 现在时间是17:13 .

Powered by: vBulletin Version 2.2.8
Translated and hacked by:
Copyright © Jelsoft Enterprises Limited 2000, 2001.


--------------------next---------------------

阅读(489) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~