|
Registriert seit: 3. Apr 2007 Ort: Zürich 534 Beiträge Delphi 11 Alexandria |
#1
Hallo zusammen,
Auf meine alten Tage muss ich in einem mit XE2 erstellten Projekt ein Memoryleak suchen. Ich habe FastMM mit Fulldebugmode eingebunden und schon mal einige Leaks gefixt. Allerdings waren dies beim beenden des Dienstes nicht freigegebene Objekte. Das Problem tritt aber zur Laufzeit auf. Nun: Trotz Suche in diversern Foren haben ich nicht genau herausgefunden wie ich den Stacktrace deuten kann. Zum Beispiel hier:
Code:
Es scheint sich um eine generische Liste zu handeln. Aber wo ist springende Punkt um welche Liste/Funktion es sich handelt?
A memory block has been leaked. The size is: 12
This block was allocated by thread 0x24A4, and the stack trace (return addresses) at the time was: 404ADE [System.pas][System][@GetMem$qqri][3454] 468660 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults.MakeInstance$qqrpvi][145] 468CF3 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults.Comparer_Selector_Binary$qqrp24System.Typinfo.TTypeInfoi][760] 4695A4 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults._LookupVtableInfo$qqr49System.Generics.Defaults.TDefaultGenericInterfacep24System.Typinfo.TTypeInfoi][1441] 67893A [System.Generics.Defaults.pas][uDetectionObjects][Generics.Defaults.%TComparer__1$20System.Types.TPointF%.Default$qqrv][1642] 673AE8 [System.Generics.Collections.pas][uDetectionObjects][Generics.Collections.%TList__1$20System.Types.TPointF%.$bctr$qqrv][663] 815B8B [uDataStorage.pas][uDataStorage][TDataStorage.GetPolygonFromXml$qqrx20System.UnicodeString][363] 81B21D [uDataStorage.pas][uDataStorage][TDataStorage.AddParkingLots$qqrip25Udetectionobjects.TCameraii][1169] 70A4F5 [MemDS][TMemDataSet.GetFieldData$qqrp14Data.Db.TFieldpvo] 6DF4D4 [Data.DB.pas][Data.DB][Db.TDataSet.FieldByName$qqrx20System.UnicodeString][11805] 8147E2 [uDataStorage.pas][uDataStorage][TDataStorage.GetConfiguration$qqrv][171] The block is currently used for an object of class: Unknown The allocation number is: 5291 Current memory dump of 256 bytes starting at pointer address 7EF6CFE8: 5C A6 87 00 01 00 00 00 08 00 00 00 86 14 66 78 00 00 00 00 61 D2 F6 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 82 17 00 00 DE 4A 40 00 6B 5F 40 00 DA 65 40 00 A0 5F 40 00 DA 65 40 00 BF 40 45 00 67 43 45 00 6A 06 6B 00 63 3A 6B 00 8B 91 66 00 2D 43 6B 00 A4 24 00 00 3C 26 00 00 FA 4A 40 00 89 5F 40 00 25 66 40 00 C2 5F 40 00 CF 5F 40 00 51 41 45 00 CF 5F 40 00 A6 43 45 00 CF 5F 40 00 C3 07 6B 00 CF 5F 40 00 08 00 00 00 88 15 40 00 9A 33 A4 85 98 D2 8A 00 80 80 80 80 65 CC 5B 7A 80 80 80 80 00 00 00 00 B1 C7 F6 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 86 18 00 00 DE 4A 40 00 6B 5F 40 00 DA 65 40 00 4E EE 83 00 91 ED 83 00 5E D4 83 00 36 93 26 00 58 FB 45 00 D9 FE 45 00 BE 7B 40 00 8A 33 A9 76 D8 15 00 00 3C 26 00 00 FA 4A 40 00 89 5F 40 00 \ ¦ ‡ . . . . . . . . . † . f x . . . . a Ò ö ~ . . . . . . . . . . . . . . . . ‚ . . . Þ J @ . k _ @ . Ú e @ . * _ @ . Ú e @ . ¿ @ E . g C E . j . k . c : k . ‹ ‘ f . - C k . ¤ $ . . < & . . ú J @ . ‰ _ @ . % f @ . Â _ @ . Ï _ @ . Q A E . Ï _ @ . ¦ C E . Ï _ @ . Ã . k . Ï _ @ . . . . . ˆ . @ . š 3 ¤ … ˜ Ò Š . € € € € e Ì [ z € € € € . . . . ± Ç ö ~ . . . . . . . . . . . . . . . . † . . . Þ J @ . k _ @ . Ú e @ . N î ƒ . ‘ í ƒ . ^ Ô ƒ . 6 “ & . X û E . Ù þ E . ¾ { @ . Š 3 © v Ø . . . < & . . ú J @ . ‰ _ @ . Oder hier:
Code:
Es sind hier uDetection.pas und uDataStorage.pas aufgeführt.
A memory block has been leaked. The size is: 12
This block was allocated by thread 0x24A4, and the stack trace (return addresses) at the time was: 404ADE [System.pas][System][@GetMem$qqri][3454] 468660 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults.MakeInstance$qqrpvi][145] 468CF3 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults.Comparer_Selector_Binary$qqrp24System.Typinfo.TTypeInfoi][760] 4695A4 [System.Generics.Defaults.pas][System.Generics.Defaults][Generics.Defaults._LookupVtableInfo$qqr49System.Generics.Defaults.TDefaultGenericInterfacep24System.Typinfo.TTypeInfoi][1441] 67893A [System.Generics.Defaults.pas][uDetectionObjects][Generics.Defaults.%TComparer__1$20System.Types.TPointF%.Default$qqrv][1642] 673AE8 [System.Generics.Collections.pas][uDetectionObjects][Generics.Collections.%TList__1$20System.Types.TPointF%.$bctr$qqrv][663] 6733A7 [uDetectionObjects.pas][uDetectionObjects][TObjectPolygon.$bctr$qqrii][1137] 671F2B [uDetectionObjects.pas][uDetectionObjects][TObjectSensor.$bctr$qqrii][587] 6729DC [uDetectionObjects.pas][uDetectionObjects][TParkingLot.SetObjectSensorActive$qqrxo][865] 81B1C4 [uDataStorage.pas][uDataStorage][TDataStorage.AddParkingLots$qqrip25Udetectionobjects.TCameraii][1164] 70A4F5 [MemDS][TMemDataSet.GetFieldData$qqrp14Data.Db.TFieldpvo] The block is currently used for an object of class: Unknown The allocation number is: 5279 Current memory dump of 256 bytes starting at pointer address 7EF6CF50: 5C A6 87 00 01 00 00 00 08 00 00 00 F7 77 42 79 00 00 00 00 20 7F F6 7E 00 00 00 00 00 00 00 00 68 36 41 00 00 00 00 00 AB 14 00 00 DE 4A 40 00 60 86 46 00 F3 8C 46 00 A4 95 46 00 3A 89 67 00 E8 3A 67 00 8B 5B 81 00 1D B2 81 00 F5 A4 70 00 D4 F4 6D 00 E2 47 81 00 A4 24 00 00 A4 24 00 00 FA 4A 40 00 C6 A4 40 00 C9 A1 40 00 00 A2 40 00 72 A3 40 00 FF BE 7C 00 38 29 77 00 9A 80 7C 00 E8 92 7C 00 36 79 6F 00 76 94 7C 00 0C 00 00 00 00 00 00 00 79 EB 99 87 5C A6 87 00 01 00 00 00 08 00 00 00 86 14 66 78 00 00 00 00 61 D2 F6 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 82 17 00 00 DE 4A 40 00 6B 5F 40 00 DA 65 40 00 A0 5F 40 00 DA 65 40 00 BF 40 45 00 67 43 45 00 6A 06 6B 00 63 3A 6B 00 8B 91 66 00 2D 43 6B 00 A4 24 00 00 3C 26 00 00 FA 4A 40 00 89 5F 40 00 \ ¦ ‡ . . . . . . . . . ÷ w B y . . . . ö ~ . . . . . . . . h 6 A . . . . . « . . . Þ J @ . ` † F . ó Œ F . ¤ • F . : ‰ g . è : g . ‹ [ . . ² . õ ¤ p . Ô ô m . â G . ¤ $ . . ¤ $ . . ú J @ . Æ ¤ @ . É ¡ @ . . ¢ @ . r £ @ . ÿ ¾ | . 8 ) w . š € | . è ’ | . 6 y o . v ” | . . . . . . . . . y ë ™ ‡ \ ¦ ‡ . . . . . . . . . † . f x . . . . a Ò ö ~ . . . . . . . . . . . . . . . . ‚ . . . Þ J @ . k _ @ . Ú e @ . * _ @ . Ú e @ . ¿ @ E . g C E . j . k . c : k . ‹ ‘ f . - C k . ¤ $ . . < & . . ú J @ . ‰ _ @ .
Code:
Hier wird sogar das Objekt: TObjectSensor aufgeführt und drei units welche von uns sind.
A memory block has been leaked. The size is: 52
This block was allocated by thread 0x24A4, and the stack trace (return addresses) at the time was: 404ADE [System.pas][System][@GetMem$qqri][3454] 405F6B [System.pas][System][TObject.NewInstance$qqrv][13000] 4065DA [System.pas][System][@ClassCreate$qqrpvzc][14164] 671EE6 [uDetectionObjects.pas][uDetectionObjects][TObjectSensor.$bctr$qqrii][584] 4138C9 [FastMM4.pas][FastMM4][DebugFreeMem$qqrpv][8900] 6729DC [uDetectionObjects.pas][uDetectionObjects][TParkingLot.SetObjectSensorActive$qqrxo][865] 81B1C4 [uDataStorage.pas][uDataStorage][TDataStorage.AddParkingLots$qqrip25Udetectionobjects.TCameraii][1164] 70A4F5 [MemDS][TMemDataSet.GetFieldData$qqrp14Data.Db.TFieldpvo] 6DF4D4 [Data.DB.pas][Data.DB][Db.TDataSet.FieldByName$qqrx20System.UnicodeString][11805] 8147E2 [uDataStorage.pas][uDataStorage][TDataStorage.GetConfiguration$qqrv][171] 8386C0 [uDetectionCore.pas][uDetectionCore][TDetectionCore.OnDatabaseConnected$qqrp14System.TObject][186] The block is currently used for an object of class: TObjectSensor The allocation number is: 5273 Current memory dump of 256 bytes starting at pointer address 7EDE0470: A0 A4 66 00 D0 60 DF 7E E0 62 DF 7E 19 00 00 00 0A 00 00 00 60 00 00 00 64 00 00 00 5C 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 B0 CF DF 7E 00 00 00 00 8F 68 D5 C4 00 00 00 00 71 0B DE 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BE 14 00 00 DE 4A 40 00 6B 5F 40 00 E9 BB 40 00 DA 65 40 00 DE B9 7F 00 3A B4 7F 00 9B C9 7F 00 92 7A 80 00 70 7B 80 00 26 C0 80 00 EC 5B 81 00 A4 24 00 00 A4 24 00 00 FA 4A 40 00 89 5F 40 00 25 66 40 00 C2 5F 40 00 4F BC 40 00 5B BB 40 00 F9 98 40 00 E9 97 40 00 3F 60 40 00 82 5F 40 00 25 66 40 00 30 00 00 00 10 A8 7F 00 A5 5F A7 86 98 D2 8A 00 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 5A A0 58 79 80 80 80 80 00 00 00 00 B1 04 DE 7E * ¤ f . Ð ` ß ~ à b ß ~ . . . . . . . . ` . . . d . . . \ . . . . . . . . . . . . . . . ° Ï ß ~ . . . . h Õ Ä . . . . q . Þ ~ . . . . . . . . . . . . . . . . ¾ . . . Þ J @ . k _ @ . é » @ . Ú e @ . Þ ¹ . : ´ . › É . ’ z € . p { € . & À € . ì [ . ¤ $ . . ¤ $ . . ú J @ . ‰ _ @ . % f @ . Â _ @ . O ¼ @ . [ » @ . ù ˜ @ . é — @ . ? ` @ . ‚ _ @ . % f @ . 0 . . . . ¨ . ¥ _ § † ˜ Ò Š . € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € € Z * X y € € € € . . . . ± . Þ ~ Macht die Reihenfolge der Auflistung einen Sinn? Wenn ja welchen? Villeicht gibt es ja irgendwo eine Erklärung dazu - nur finde ich sie nicht? Danke für Eure Anregungen.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit. |
![]() |
Ansicht |
![]() |
![]() |
![]() |
ForumregelnEs ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus. Trackbacks are an
Pingbacks are an
Refbacks are aus
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
![]() |
![]() |