Hallo,
habe mit FastMM und FullDebugMode eine Liste einiger Speicher-Leaks bekommen, allerdings hilft mir die Liste nicht wirklich weiter.
Hauptsächlich sind es Leaks verursacht von UnicodeStrings:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| The block is currently used for an object of class: UnicodeString
13 - 20 bytes: Unknown x 123 21 - 36 bytes: UnicodeString x 10, Unknown x 2 37 - 52 bytes: UnicodeString x 39 53 - 68 bytes: UnicodeString x 8, Unknown x 3 69 - 84 bytes: UnicodeString x 2 85 - 100 bytes: TStringList x 11, Unknown x 1 341 - 388 bytes: Unknown x 1 |
Die TStringList ist mir bekannt, das verursacht eine Komponente zur Lokalisierung. Aber die UnicodeString- und Unknown-Leaks machen mir zu schaffen. Wie können denn UnicodeString-Leaks entstehen?
Hier mal ein Beispiel aus der Liste:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| A memory block has been leaked. The size is: 36
This block was allocated by thread 0x1738, and the stack trace (return addresses) at the time was: 4048F6 407873 407AA4 48A764 [SysUtils][SysUtils][SysUtils.TEncoding.GetString] 48A719 [SysUtils][SysUtils][SysUtils.TEncoding.GetString] 4B0E75 [Classes][Classes][Classes.TReader.ReadString] 4ABCD2 [Classes][Classes][Classes.TStrings.ReadData] 4AECA9 [Classes][Classes][Classes.TReader.DefineProperty] 4AAF4D [Classes][Classes][Classes.TStrings.DefineProperties] 4B01F3 [Classes][Classes][Classes.TReader.ReadProperty] 4AFAE6 [Classes][Classes][Classes.TReader.ReadDataInner]
The block is currently used for an object of class: UnicodeString
The allocation number is: 115236 |
Viele Dank für jegliche Tipps!
Gruß
Andy
Moderiert von
Narses: Code-Tags hinzugefügt
---
Moderiert von
Narses: Beiträge zusammengefasst---
Hallo,
interessanterweise hat sich die angesprochene Komponente als ursächlich für ALLE UnicodeString-Leaks herausgestellt. Dort wurde schlicht vergessen, eine TStringList wieder freizugeben.
Es bleiben nunmehr nur noch die Unknown-Leaks. Wie geht man hier am besten vor, um die Ursachen zu finden?
Danke und Gruß
Andy