CnPack Forum


 
Subject: 不知道是不是内存漏洞?
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2007-7-2 16:44  Profile | Blog | P.M. 
不知道是不是内存漏洞?

FastMM  共70M的日志 摘一个,其中很多个是这样的

--------------------------------2007/7/2 16:13:13--------------------------------
A memory block has been leaked. The size is: 28
Stack trace of when this block was allocated (return addresses):
51F23BD6 [System][@GetMem]
51F278D1 [System][@NewAnsiString]
51F278FC [System][@LStrFromPCharLen]
B568055 [SimpleWizards\CnBookmarkWizard.pas][CnBookmarkWizard][CnBookmarkWizard.TCnBookmarkForm.UpdateComboBox][744]
B60326C [ExplorerWizard\CnExplore.pas][CnExplore][CnExplore.TCnExploreForm.Create][724]
B60640F [ReopenWizard\CnRoClasses.pas][CnRoClasses][CnRoClasses.TIniContainer.LogFile][787]
B60CDE9 [IdeEnhancements\CnInputSymbolList.pas][CnInputSymbolList][CnInputSymbolList.TSymbolItem.OutputTemplate][636]
B60C658 [CnInputSymbolList][CnInputSymbolList..TCodeTemplateList][972]
410042 [ui\AppMain.pas][AppMain][AppMain.TAppBuilder.EditFlipChildrenSelected][4028]

下面的代码是不是写反了? not 不要? CnExplore.pas内的
  if not Assigned(FFileFilterList) then
    FreeAndnil(FFileFilterList);
  if not Assigned(FDirectoryList) then
    FreeAndnil(FDirectoryList);
  if not Assigned(FFileFilterMenu) then
    FreeAndnil(FFileFilterMenu);
  if not Assigned(FDirectoryMenu) then
    FreeAndnil(FDirectoryMenu);
  inherited Destroy;
  CnExploreForm := nil;

接贴
解决:刚才把 not 去掉了,看不到这一处有leak
接贴
cnShell 内存Leak更多,CnShellCtrls.pas,delphia工作半个小时,退出时,FastMM写了300多M的内存Leak报告,主要是关于cnshellview和cnshellList的,好像写不完,我只好从管理器里强行关bds.exe ,希望这个解决了就好了

[ 本帖最后由 niaoge 于 2007-7-2 19:09 编辑 ]
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6812
Posts 3579
点点分 6812
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2007-7-3 09:53  Profile | Blog | P.M. 
if not Assigned(FFileFilterList) then

这堆东西是真写反了!惭愧惭愧,俺们移植代码的时候没仔细检查。
cnshellview和cnshellList我们是从D7的VCL中移植过来的,是为了弥补D5下没这个组件的缺陷。
Top
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2007-7-3 10:13  Profile | Blog | P.M. 
我不知道哪里用到了cnshell,不好查,不然我自己先改改,这地方leak很多,
一般情况下,像ListView,TreeListView 的Data(无指向指针Pointer)在clearItems或是destroy时最容易被忽视
Top
xjw100
灌水科科长
Rank: 3Rank: 3


UID 1476
Digest Posts 0
Credits 134
Posts 74
点点分 134
Reading Access 10
Registered 2005-12-13
Location 桂林
Status Offline
Post at 2007-7-3 13:12  Profile | Blog | P.M. 
FastMM 真的不错!
Top
kendling (小冬)
高级版主
Rank: 8Rank: 8
MyvNet


Medal No.1  
UID 703
Digest Posts 5
Credits 978
Posts 580
点点分 978
Reading Access 101
Registered 2005-2-18
Location 广东
Status Offline
Post at 2007-7-3 13:54  Profile | Site | Blog | P.M.  | QQ | Yahoo!
哈哈,我也喜欢FastMM




小冬
http://MyvNet.com
Top
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2007-7-4 09:47  Profile | Blog | P.M. 
325版,close all还是有问题, 出错的地方可能是当close all之后,没有工程,但是应用程度空闲还是要取当前窗体(不存在了)的Context分析
切换编辑View同样会报dll错误(D10)
forms和Units 那个过滤的输入框输入可以,但是按BackSpace会出错
有可能出错的原因与GExperts冲突,能否把GExperts 右键的功能加到cw上?特别是Copy Component Name 这个功能,这样我们就不需要用Gexperts
没有用fastMM测内存了,估计应该不会有泄露了
哈哈,cnControlHook移走了,手法很老练,佩服

[ 本帖最后由 niaoge 于 2007-7-4 15:26 编辑 ]
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6812
Posts 3579
点点分 6812
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2007-7-4 21:54  Profile | Blog | P.M. 
Close All的问题我们再看看。

forms和Units 那个过滤的输入框输入可以,但是按BackSpace会出错。——这个问题是这几天改动的时候引入的,也有朋友报告了,今天已修正,326中将会集成。

Copy Component Name在窗体旁边的浮动工具栏上有对应按钮。至于组件右键菜单,CnWizards还没在这方面做东西,估计以后需要的时候再加了。
Top
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2007-7-5 10:33  Profile | Blog | P.M. 
325版很不稳定,可能是换了控件的原因
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6812
Posts 3579
点点分 6812
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2007-7-5 13:04  Profile | Blog | P.M. 
改了ControlHook机制,影响是很大。还需要多多测试来修复。
Top
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2007-7-8 21:56  Profile | Blog | P.M. 
326版很稳重,可以不叫Unstable
Top
gz_runwe
灌水科科长
Rank: 3Rank: 3



UID 12086
Digest Posts 0
Credits 108
Posts 47
点点分 108
Reading Access 10
Registered 2007-4-27
Status Offline
Post at 2007-7-8 21:59  Profile | Blog | P.M. 
好象326还是不稳定啊

最典型的情况是,进入D2007,打开一个工程,什么事情都不做,退出系统,关闭系统会弹出调试窗

我这边是VISTA + D2007 + 326
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6812
Posts 3579
点点分 6812
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2007-7-8 23:38  Profile | Blog | P.M. 
请问楼上的D2007是否打了update 1?
Top
gz_runwe
灌水科科长
Rank: 3Rank: 3



UID 12086
Digest Posts 0
Credits 108
Posts 47
点点分 108
Reading Access 10
Registered 2007-4-27
Status Offline
Post at 2007-7-9 08:10  Profile | Blog | P.M. 
当然

其实感觉cnPack不稳定就是从Update1开始的,但好象一直都没能解决,不知道D2007 Update1到底改了那里
现在很矛盾啊,装上cnPack,D2007就很脆弱,没有cnPack又感觉,又不习惯...
Top
 




All times are GMT++8, the time now is 2024-9-20 00:37

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.009583 second(s), 8 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP