Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beitrge
 
Delphi 11 Alexandria
 
#8

Re: Memory Leak in einer TStringList

  Alt 10. Aug 2009, 20:07
Hallo,

ich habe mal ein kleines Demo-Programm geschrieben und eine TStringlist nicht freigegeben.

Das ist die Log-File dazu:


Code:
--------------------------------2009/8/10 19:58:31--------------------------------
Ein Speicherblock hat Speicher verloren. Die Gre ist: 68

Aufrufstack, von wem der Block momentan belegt wird (Rcksprungadressen):
402E8A [system.pas][System][@GetMem][2648]
403A3F [system.pas][System][TObject.NewInstance][8824]
403DAE [system.pas][System][@ClassCreate][9489]
403A74 [system.pas][System][TObject.Create][8839]
41218B [sysutils.pas][SysUtils][TThreadLocalCounter.Open][16571]
41211E [sysutils.pas][SysUtils][TThreadLocalCounter.HashIndex][16552]
465A03 [uHPLDemoFastMM.pas][uHPLDemoFastMM][TForm2.FormCreate][44]
4592B3 [Forms.pas][Forms][TCustomForm.DoCreate][2756]
458EFB [Forms.pas][Forms][TCustomForm.AfterConstruction][2680]
403E1C [system.pas][System][@AfterConstruction][9537]

Der Block wird momentan fr eine Objektklasse benutzt TStringList

The allocation number is: 346

Aktueller Speicherauszug von 256 Bytes, beginnend ab Zeigeradresse 7FF7C5A0:
68 74 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DD 5B 73 7D 0C 01 47 00
0C 01 47 00 0C 01 47 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
62 01 00 00 8A 2E 40 00 3F 3A 40 00 AE 3D 40 00 74 3A 40 00 EC 59 46 00 90 2B 44 00 42 EF 42 00
AB F0 42 00 D0 25 44 00 AD 31 7A 75 A6 2E 40 00 5D 3A 40 00 F9 3D 40 00 FD B5 41 00 A3 3A 40 00
F1 59 46 00 90 2B 44 00 42 EF 42 00 AB F0 42 00 D0 25 44 00 38 00 00 00 68 74 41 00 9D FC 9F FA
0C FE 46 00 0C 01 47 00 0C 01 47 00 0C 01 47 00 0C 01 47 00 0C 01 47 00 0C 01 47 00 0C 01 47 00
0C 01 47 00 0C 01 47 00 0C 01 47 00 0C 01 47 00 0C 01 47 00 0C 01 47 00 62 03 60 05 0C 01 47 00
h t A . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .   [  s }  . . G .
. . G . . . G . . . . . . . . . . . . . . . . . . . . . . . . .
b . . .   . @  . ?  : @  .   = @  . t : @  .   Y F .   +  D . B   B .
    B .   %  D . *  1  z u   . @  . ] : @  .   = @  .     A .   : @  .
  Y F .   +  D . B   B .     B .   %  D . 8  . . . h t A .      
.   F . . . G . . . G . . . G . . . G . . . G . . . G . . . G .
. . G . . . G . . . G . . . G . . . G . . . G . b . `  . . . G .

--------------------------------2009/8/10 19:58:31--------------------------------
Diese Anwendung hat Speicher verloren. Die Gren von kleinen Speicherblcken, die verlorengegangen sind, betragen (ausgenommen erwartete Speicherlecks, die durch Zeiger registriert wurden):

53 - 68 Bytes: TStringList x 1
Man kann nicht erkennen in welcher Unit das Leak auftritt.

Noch irgendwer eine Idee?

Bis bald Chemiker
wer gesund ist hat 1000 wnsche wer krank ist nur einen.
  Mit Zitat antworten Zitat