中国开发网: 论坛: 程序员情感CBD: 贴子 286093
Fish
【HLP!】请各位帮忙看看这个内存泄漏问题,该如何解决?
前几天碰到内存泄漏问题,狂测试外加上网查,在Borland的站点上找到一个
BCB 的 VCL 源代码内存缺陷的帖子,已经据此修正了 BCB 的某个头文件。

为方便有关同学参考,顺便给出该帖子的链接:
TVariant memory leak with conversion operators
http://qc.borland.com/wc/qcmain.aspx?d=4543

但是这个还不是手中这个程序内存泄漏的根本原因,经过使用 TurboPower
Memry Sleuth 3 和 BoundsChecker 7.2 跟踪分析,得到下面的情况:

Memory Sleuth 的截图:


BoundsChecker 的截图:


这部分出问题的代码主要是使用 BCB 封装的 MSXML 相关接口将有关数据集
转换成 XML 数据文件。从检测结果来看,最终的泄漏都归结到下面的调用:

0 4E71AFh TuxClient.exe (System::WStrFromPWCharLen(System::WideString&, wchar_t *, int) + 0Bh)
1 4E7166h TuxClient.exe (System::WStrFromPCharLen(System::WideString&, char *, int) + 04Eh)

之后,WStrFromPWCharLen 又隐含地调用了 SysAllocStringLen 进行内存的分配。
从这些情况来看,问题的关键似乎出现在底层的 BSTR 字符串转换过程中。

不知道我的分析对否?请有经验的大侠指点,并指导解决办法。请多多指教,先谢了
大家都是出来卖的,何苦自己人为难自己人
那些活好的,或者活新的,或者花样多的,
或者老板拉皮条功夫好能拉到肯多花钱的客的,
拜托不要老是打击年老色衰的同行了

老鱼记事 老鱼侃棋 老鱼围脖


相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录