setze bei den Link-Optionen auch TD32 und ext. Debug-Symbole.
Dann zeigt er Dir die
Unit und die Zeile der Erzeugung des Leaks.
Zumindest im Standard-Memorymanager von Delphi gibt das keine weiteren Informationen.
@Sherlock:
Hier mal ein Beispiel für lediglich ein Objekt, welches nicht freigegeben wurde und die dadurch entstandenen Speicherlöcher. Manchmal kann ganz wenig zu sehr viel führen.
Code:
An unexpected memory leak has occurred. The unexpected small block leaks are:
1 - 12 bytes: TMoveArrayManager<OCTAX.Biometrics.IOctaxBiometricsRegisteredUser> x 1, TMoveArrayManager<OCTAX.Biometrics.IOctaxBiometricsDevice> x 1, TMoveArrayManager<System.NativeUInt> x 2, TMoveArrayManager<OCTAX.Common.Hardware.IOctaxHardware> x 1, Unknown x 5
21 - 28 bytes: TOctaxBiometricsDatastoreMemory x 1, TOctaxBiometricsAnalyzer x 6, TOctaxProvider x 8
29 - 36 bytes: TCriticalSection x 5, TDigitalPersonaQuality x 1
37 - 44 bytes: TDigitalPersonaFingerJetAnalyzer x 1
45 - 52 bytes: TList<System.TMethod> x 5
53 - 60 bytes: TCollectionChangedEventImpl<OCTAX.Biometrics.IOctaxBiometricsDevice> x 1, TCollectionChangedEventImpl<OCTAX.Biometrics.IOctaxBiometricsRegisteredUser> x 1, TCollectionChangedEventImpl<System.NativeUInt> x 2, TCollectionChangedEventImpl<OCTAX.Common.Hardware.IOctaxHardware> x 1
61 - 68 bytes: TOctaxBiometricsManager x 1, UnicodeString x 6
69 - 76 bytes: TList<OCTAX.Biometrics.IOctaxBiometricsRegisteredUser> x 1, TList<OCTAX.Biometrics.IOctaxBiometricsDevice> x 1, TList<System.NativeUInt> x 2, UnicodeString x 1
77 - 84 bytes: TOctaxHardwareManager x 1, UnicodeString x 1
117 - 124 bytes: TDigitalPersonaFingerJet x 1
189 - 204 bytes: UnicodeString x 8
...
...
P.S.: Ich hatte zur Demonstration des Ergebnisses einfach mal sichergestellt, dass EIN Objekt nicht freigegeben wurde.