Hallo,
ich benutze gerade das erste Mal FastMM um Memoryleaks zu finden. Ein paar sind tatsächlich vorhanden. Jetzt bin ich aber an einem Punkt, wo ich nicht weiß, wie ich das Problem beheben soll.
Beispiel aus der Logdatei:
Zitat:
--------------------------------2008/10/15 15:07:37--------------------------------
A memory block has been leaked. The size is: 36
This block was allocated by thread 0x10E4, and the stack trace (return addresses) at the time was:
4032E2 [System.pas][System][@GetMem][3412]
407343 [System.pas][System][@NewUnicodeString][18113]
406A9C [System.pas][System][@UStrFromPWCharLen][17062]
42B077 [Classes.pas][Classes][TStrings.SetDelimitedText][5241]
513AA0 [Functions\uSchedUtils.pas][uSchedUtils][TSchedItem.WriteDelimitedText][915]
51531D [Functions\uSchedUtils.pas][uSchedUtils][TScheduler.WriteDelimitedText][1458]
5154F2 [Functions\uSchedUtils.pas][uSchedUtils][TScheduler.LoadFromFile][1490]
605A6B [Forms\uMain.pas][uMain][TfrmMain.FormCreate][1083]
4B9B7B [Forms.pas][Forms][TCustomForm.DoCreate][3260]
4B97C3 [Forms.pas][Forms][TCustomForm.AfterConstruction][3143]
404DB8 [System.pas][System][@AfterConstruction][10616]
The block is currently used for an object of class: Unknown
The allocation number is: 79030
Current memory dump of 256 bytes starting at pointer address 7FD1D550:
B0 04 02 00 01 00 00 00 08 00 00 00 53 00 65 00 72 00 76 00 65 00 72 00 2D 00 33 00 00 00 13 A7
97 79 80 80 80 80 80 80 00 00 00 00 11 DD D1 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
B7 09 01 00 E2 32 40 00 03 48 40 00 4A 4D 40 00 9B F2 4A 00 23 F9 49 00 55 3B 4A 00 97 6E 45 00
18 7F 45 00 E4 DA 42 00 15 DD 42 00 47 E7 42 00 E4 10 00 00 21 48 40 00 95 4D 40 00 51 8F 42 00
67 48 40 00 5C FA 49 00 21 48 40 00 95 4D 40 00 51 8F 42 00 4A 3D 4A 00 AA 7F 45 00 0C 3D 4A 00
E4 10 00 00 24 00 00 00 F4 A8 49 00 19 AD FA 85 48 31 62 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 E6 52 05 7A 00 00 00 00 F1 D8 D1 7F
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 09 01 00 E2 32 40 00 03 48 40 00 4A 4D 40 00
° . . . . . . . . . . . S . e . r . v . e . r . - . 3 . . . . §
— y € € € € € € . . . . . Ý Ń . . . . . . . . . . . . . . . .
· . . . â 2 @ . . H @ . J M @ . › ň J . # ů I . U ; J . — n E .
. E . ä Ú B . . Ý B . G ç B . ä . . . ! H @ . • M @ . Q Ź B .
g H @ . \ ú I . ! H @ . • M @ . Q Ź B . J = J . Ş E . . = J .
ä . . . $ . . . ô ¨ I . . * ú … H 1 b . € € € € € € € € € € € €
€ € € € € € € € € € € € € € € € € € € € ć R . z . . . . ń Ř Ń
. . . . . . . . . . . . . . . . @ . . . â 2 @ . . H @ . J M @ .
Bei welcher der oben aufgeführten Funktionen ist das Memoryleak zu finden? Was kann mir dieser Logeintrag noch alles sagen?
Und was mache ich mit solchen Einträgen, die noch nicht mal eine meiner Funktionen beinhaltet? Kann man daran überhaupt was ändern?
Zitat:
--------------------------------2008/10/15 15:07:37--------------------------------
A memory block has been leaked. The size is: 36
This block was allocated by thread 0x10E4, and the stack trace (return addresses) at the time was:
4032E2 [System.pas][System][@GetMem][3412]
404803 [System.pas][System][TObject.NewInstance][9781]
404D4A [System.pas][System][@ClassCreate][10568]
443626 [SyncObjs.pas][SyncObjs][TCriticalSection.Create][521]
60F9BB
40561B [System.pas][System][InitUnits][12984]
405683 [System.pas][System][@StartExe][13049]
4090FB [SysInit.pas][SysInit][@InitExe][693]
6107F5
76E24911 [BaseThreadInitThunk]
7721E4B6 [Unknown function at RtlInitializeExceptionChain]
The block is currently used for an object of class: TIdCriticalSection
The allocation number is: 1214
Current memory dump of 256 bytes starting at pointer address 7FEF63F0:
B4 AD 4C 00 80 1D 19 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
7D 93 18 28 80 80 80 80 00 00 00 00 51 AC EF 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
C5 04 00 00 E2 32 40 00 43 73 40 00 9C 6A 40 00 21 8F 40 00 6A F3 21 77 2C E8 20 77 2C 8B 24 77
52 87 24 77 17 EF 20 77 24 1F 29 77 7D 25 29 77 E4 10 00 00 FE 32 40 00 26 5B 40 00 82 75 40 00
02 FE 4D 00 B3 55 40 00 68 59 40 00 4D 08 61 00 11 49 E2 76 B6 E4 21 77 89 E4 21 77 00 00 00 00
E4 10 00 00 22 00 00 00 B0 04 02 00 8D 1C 09 2A 48 31 62 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 72 E3 F6 D5 80 80 00 00 00 00 01 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CA 04 00 00 E2 32 40 00 43 73 40 00 8C 6C 40 00
´ * L . € . . . ˙ ˙ ˙ ˙ . . . . . . . . . . . . . . . . . . . .
} “ . ( € € € € . . . . Q ¬ ď . . . . . . . . . . . . . . . .
Ĺ . . . â 2 @ . C s @ . ś j @ . ! Ź @ . j ó ! w , č w , ‹ $ w
R ‡ $ w . ď w $ . ) w } % ) w ä . . . ţ 2 @ . & [ @ . ‚ u @ .
. ţ M . ł U @ . h Y @ . M . a . . I â v ¶ ä ! w ‰ ä ! w . . . .
ä . . . " . . . ° . . . Ť . . * H 1 b . € € € € € € € € € € € €
€ € € € € € € € € € € € € € € € € € r ă ö Ő € € . . . . . . . .
. . . . . . . . . . . . . . . . Ę . . . â 2 @ . C s @ . Ś l @ .
Vielen Dank schon mal für eure Hilfe.
Viele Grüße