EVC下的内存泄露问题该怎么调试?

thskkk 2008-11-18 06:52:09
我在一个对话框中有一个CTreeCtrl与一个CListBox,自己从CTreeCtrl与CListBox中派生自己的类,其中CTreeCtrl用于从一个文本中提取信息并创建一个CTree,CListBox用于显示相关树项的内容。现在的问题是,反复启动这个对话框就会发现内存减少。
第一次启动后再退出,发现内存比启动前减少了;以后启动对话框内存可能不减少,也可能减少,感觉是随机的,总规律还是会减少。我的代码中只有一个地方用new 分配了空间,也释放了;也没有自己编写CDC等控制,CRect还是有的。还有我用到了内存映像文件,但是我根据说上的 例子做了资源释放,不知道怎么搞的,跟踪调试几天了还没有解决这个问题。
...全文
200 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
thskkk 2008-11-24
  • 打赏
  • 举报
回复
能不用的控件不用,能简洁的代码简洁,能注释掉的暂时注释掉,暂时缓解了(泄露慢,但还漏),结贴了!
thskkk 2008-11-22
  • 打赏
  • 举报
回复
今天还在调试这个问题,注释掉了绝大部分代码,发现一个问题:我在OnInitDialog()中如果没有开启SetTimer( 1, 50, NULL )就不会有问题,如果这样做了有可能有泄露,有时候又没有。泪奔中,明天还要加班啊。
Jacky_Dai 2008-11-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 fengwx 的回复:]
发现在MFC下处理WM_ERASEBKGND(OnEraseBkgnd)消息会产生内存泄露,不处理就没事了。
[/Quote]
???是吗? 找微软算账
fengwx 2008-11-21
  • 打赏
  • 举报
回复
发现在MFC下处理WM_ERASEBKGND(OnEraseBkgnd)消息会产生内存泄露,不处理就没事了。
thskkk 2008-11-20
  • 打赏
  • 举报
回复
用什么工具测啊?
西山小月 2008-11-20
  • 打赏
  • 举报
回复
做单元测试
lenux 2008-11-19
  • 打赏
  • 举报
回复
提供一个很笨也很简单的办法。

按模块注释掉你的代码,然后编译运行,先查出是哪个模块的问题,

然后再那个模块中一个函数一个函数的注释掉,看是哪个函数的问题,以此类推。
e01620230 2008-11-19
  • 打赏
  • 举报
回复
windows CE.net 在堆中创建的内存块不能够移动,多次创建内存块 释放内存块回产生内存碎块。而和堆相关的函数最好用 HANDLE HeapCreate,LPVOID HeapAlloc, LPVOID HeapHeAlloc,DWORD HeapSize,BOOL HeapFree,BOOL HeapDestroy.
xqhrs232 2008-11-19
  • 打赏
  • 举报
回复
学习一下
thskkk 2008-11-19
  • 打赏
  • 举报
回复
谢谢各位,现在就用笨办法注释掉代码逐渐排查,范围在缩小,但是还没有找到真正元凶。另外发现一个奇怪问题,我的对话框如果只保留MFC自身产生的代码后反复调用DoModal()也会发现内存泄露,但是用AfxCheckMemory()并没有发现内存冲突,奇怪啊。
91program 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 thskkk 的回复:]
抱歉我没法提供源代码啊,单位的电脑都是保密的,监控很严,我可不敢为这个小问题犯错误。
我现在看哪一块代码都不顺眼,都有可能,要崩溃了。
[/Quote]

没有办法

只能一句句的查,查每个函数的帮助,仔细看其说明部分,是否要求调用相关的释放函数。
例如:new<>free
malloc<>delete
Create...<>Delete.../Release...
thskkk 2008-11-18
  • 打赏
  • 举报
回复
抱歉我没法提供源代码啊,单位的电脑都是保密的,监控很严,我可不敢为这个小问题犯错误。
我现在看哪一块代码都不顺眼,都有可能,要崩溃了。
91program 2008-11-18
  • 打赏
  • 举报
回复
LZ把可能 的原因都给排除了,还让大家找原因。

能提供源代码不?其实原因大多数时候都很简单,没有发现的时候一般都会认为是高深的问题。

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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