Subject:
可能200或201版本有内存bug
[Print This Page]
Author:
VictorWoo
Time:
2006-7-21 16:07
Subject:
可能200或201版本有内存bug
直接打开任何.dpr工程,跳出n个“内存管理监视器指针列表溢出,请增大列表项数!”,只能终止delphi进程。
在写代码的时候调用某个自定义函数,写到 MyCompressData(src, len……后面还没写完。应该是在len的自动完成处
处就跳出同前面所述的框来。
由于我是近期更新的200和201版本,这个“内存管理监视器指针列表溢出,请增大列表项数!”提示好象是CnPack的memProf单元特有的,故怀疑这两个版本有问题。
请帮忙分析一下,谢谢。
Author:
shenloqi
Time:
2006-7-22 10:57
我下载了最新的源代码查了一下,cnpack和cnwizard并没有将cnmemprof.pas编译进,所以不应该出现这样的情况。
cnmemprof是用于对小型的项目进行内存检测的,所以存在一些先天上的缺陷,如限定了内存监视指针的个数等。(我写cnmemprof的时候还没有出现fastmm4,现在有了fastmm4,我建议使用fastmm4的fulldebugmode来检测内存泄露)。
不知道您的机器上有没有其他的专家或设计器组件包使用了cnmemprof单元,如果将cnmemprof单元编译进其他的专家,也会导致cnmemprof替换掉delphi自带的内存管理器,这样也有可能会导致出现你说的错误。
所以切记,不要在delphi的专家和设计器组件包中引入cnmemprof之类的替换内存管理器。
Author:
VictorWoo
Time:
2006-7-24 09:24
设计器组件包指哪一种?
我检查了机器上装的专家,有如下:
ExptDemo
CnWizards_D7
DelForEx7
VssConnexion
GExperts
MidexExpert
有点奇怪,除了CnWizards_D7以外,似乎都是老外写的专家啊。DelForEx7用了很久很久,也不该这个时候突然不能用。所以现在把怀疑对象集中在您说的“设计器组件”不知是指哪一种?
谢谢回复!
Author:
shenloqi
Time:
2006-7-24 09:39
是设计期组件包,就是Delphi的Install Component出来的对话框中列出来的bpl。
这些bpl会被IDE装载,如果这些bpl包括了cnmemprof等替代内存管理器,就可能会出现这个情况。
我记得很久以前的CnPack(不是CnWizards,是CnWizards使用到的基础组件包)组件包中曾经将CnMemProf打进dpk中了,如果你机器上的CnPack还是老的话,就可能会出现这个情况了,建议你检查一下。如果的确是CnPack包含了这个单元的话,将这个单元从dpk中移除或者下载最新的源代码重新编译应该就可以了。
Author:
VictorWoo
Time:
2006-7-24 21:34
嗯,今天忍无可忍一直弹框的时候去找了一下把CnMemProf从User包里除去了,顺便也除去了CnPack,不知道是哪个操作生效了,现在用起来没有问题了。
不过我觉得奇怪,为何User包里的东西会影响我其他工程?
另,我下的是
http://www.cnpack.org/showdetail.php?id=423&lang=zh-cn
CnPack 2005-11-13 CVS 包,好象没有更新的了啊?
Author:
shenloqi
Time:
2006-7-25 09:51
CnWizards本身是没有问题的,2005-11-13的包应该是有问题的。
你需要将这个包里面的CnMemprof去掉(在dpk中删除有CnMemprof的那行),重新编译就可以了。
Author:
VictorWoo
Time:
2006-7-25 10:19
对。应该是这样的。不过这似乎是我在网站上看到的最新版本了,是不是后面都没有更新?
没有装CVS,不便帮cnpack更新了
Author:
shenloqi
Time:
2006-7-25 23:18
可能后来没有再在网上放出最新的CnPack的源代码吧
Welcome to CnPack Forum (http://bbs.cnpack.org/)
Powered by Discuz! 5.0.0