CnPack Forum


 
Subject: CNSqlite中有内存泄露
mymousecat
新警察
Rank: 1



UID 35726
Digest Posts 0
Credits 10
Posts 4
点点分 10
Reading Access 10
Registered 2008-1-9
Status Offline
Post at 2008-1-9 15:46  Profile | Blog | P.M. 
CNSqlite中有内存泄露

只简单的使用下列代码:
var
   db:TLiteDB;
begin
  db:=TLiteDB.Create();
  db.Free;
end;

用CheckMem生成的报告如下:

===== Project5.exe,2008/1/9 15:41:09 =====
     可用地址空间 : 1280 KB(1310720 Byte)
       未提交部分 : 0 KB(0 Byte)
       已提交部分 : 1280 KB(1310720 Byte)
         空闲部分 : 1277 KB(1307756 Byte)
       已分配部分 : 2 KB(2560 Byte)
全部小空闲内存块 : 256 KB(262460 Byte)
全部大空闲内存块 : 310 KB(318432 Byte)
   其它未用内存块 : 709 KB(726864 Byte)
   内存管理器消耗 : 0 KB(404 Byte)
     地址空间载入 : 0%
当前出现 2 处内存漏洞 :
   0) 0000000000E63F40 - 15089440($E63F20)字节 - 不是对象
   1) 0000000000E9DAC0 - 15325600($E9D9A0)字节 - (未命名): TStringList (56 字节) - In Classes.pas
Top
mymousecat
新警察
Rank: 1



UID 35726
Digest Posts 0
Credits 10
Posts 4
点点分 10
Reading Access 10
Registered 2008-1-9
Status Offline
Post at 2008-1-9 16:16  Profile | Blog | P.M. 
两处问题找到了

费了我10分钟,两处问题终于找到,第一个是在TLiteDB的析构中,TStringList的FFields没有释放,第二个是在SystemErrorMsg函数中,用GetMem申请的内存,没有释放,我那个汗呀,这么简单的错误,为什么要犯呢,以后我真应该考虑考虑是否该自已写组件了!!!!
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-1-9 17:18  Profile | Blog | P.M. 
感谢您的报告。惭愧,CnPack组件包一直处于开发期间,其中有错误在所难免。CnSQLite也是移植而来,提交者并未对其进行过比较完全的测试,因此给您带来了不便,在此说声抱歉。
Top
mymousecat
新警察
Rank: 1



UID 35726
Digest Posts 0
Credits 10
Posts 4
点点分 10
Reading Access 10
Registered 2008-1-9
Status Offline
Post at 2008-1-9 17:24  Profile | Blog | P.M. 
没关系,我想知道的是,我提交的这些错误,在下一个版本中,可以改正吗?
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-1-9 22:56  Profile | Blog | P.M. 
可以。这几天就可以改正。不过改正好的代码放在CVS里,估计暂时不会提供zip包供下载。您可以通过访问CVS来获得最新代码。
下一版本的CnWizards发布时,CnPack组件包才会重新打包供下载。
Top
shenloqi
灌水处处长
Rank: 4



UID 34
Digest Posts 1
Credits 287
Posts 179
点点分 287
Reading Access 10
Registered 2003-3-15
Status Offline
Post at 2008-1-10 09:55  Profile | P.M. 
很多CnPack中的组件没有经过内存泄漏的测试(不少是大家贡献的组件移植而来),所以的确可能会有内存泄漏的问题存在,如果发现了泄漏,烦请继续报告,我们会及时更新的。
Top
mymousecat
新警察
Rank: 1



UID 35726
Digest Posts 0
Credits 10
Posts 4
点点分 10
Reading Access 10
Registered 2008-1-9
Status Offline
Post at 2008-1-10 10:26  Profile | Blog | P.M. 
好的,我会的
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-1-12 21:20  Profile | Blog | P.M. 
CVS上最新的代码中此问题已经修复。
Top
 




All times are GMT++8, the time now is 2024-11-25 02:08

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

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