2

FullDebugMode で FastMM4 を使用してメモリリークを見つけています。UnicodeStringTListTParameters

A memory block has been leaked. The size is: 276
This block was allocated by thread 0x2928, and the stack trace (return addresses) at the time was:
404CFE [System][@GetMem$qqri]
408C0F [System][@NewUnicodeString$qqri]
408E40 [System][@UStrFromPWCharLen$qqrr20System.UnicodeStringpbi]
408F17 [System][InternalUStrFromPCharLen$qqrr20System.UnicodeStringpcii]
5C006B [Vcl.Themes][Themes.TUxThemeStyle.GetElementDetails$qqr27Vcl.Themes.TThemedScrollBar]
774861EF [GetWindowLongW]
74B6588B [Unknown function at DrawThemeParentBackground]
74B6586C [Unknown function at DrawThemeParentBackground]
74B6780B [Unknown function at OpenThemeData]
7748C5FE [Unknown function at gapfnScSendMessage]
77481B31 [Unknown function at PeekMessageA]

The block is currently used for an object of class: UnicodeString

A memory block has been leaked. The size is: 20    
This block was allocated by thread 0x2928, and the stack trace (return addresses) at the time was:
404CFE [System][@GetMem$qqri]
406EB3 [System][TObject.NewInstance$qqrv]
407556 [System][@ClassCreate$qqrpvzc]
406EE8 [System][TObject.$bctr$qqrv]
814DD8 [Datasnap.DBClient][Dbclient.TCustomClientDataSet.ClearActiveAggs$qqrv]
815359 [Datasnap.DBClient][Dbclient.TCustomClientDataSet.ResetAllAggs$qqro]
80D8AC [Datasnap.DBClient][Dbclient.TCustomClientDataSet.InternalOpen$qqrv]
6948D7 [Data.DB][Db.TDataSet.DoInternalOpen$qqrv]
69498F [Data.DB][Db.TDataSet.OpenCursor$qqro]
80CA87 [Datasnap.DBClient][Dbclient.TCustomClientDataSet.OpenCursor$qqro]
69484B [Data.DB][Db.TDataSet.SetActive$qqro]

The block is currently used for an object of class: TBits

私の現在のメモリ リーク レポートは約 2 メガバイトで、その内容のほとんどはそのようなものです。何が起こっている?RTL内部とそのVCL内部のメモリリークの可能性について心配する必要がありますか? はいの場合、それらについて何ができますか?

4

1 に答える 1

6

RTLとVCLの内部、およびそれらの内部で発生する可能性のあるメモリリークについて心配する必要がありますか?

おそらくそうではありません。RTL/VCLの最近のバージョンはクリーンです。私は彼らとのリークに遭遇したことはありませんが、それはあなたがそうしないと言っているわけではありません。

いずれにせよ、提示するレポートは、コード内の通常のメモリリークのように見えます。コードがリークすると、通常、オブジェクトを作成してから破棄に失敗します。リークされたオブジェクトは、他の多くのオブジェクトを所有している可能性があります。そして、それらはすべてFastMMによって追跡され、個別のリークとして報告されます。したがって、文字列を含むオブジェクトを作成すると、所有するオブジェクトをリークすると文字列もリークします。

于 2013-03-18T11:23:39.220 に答える