Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#5

Re: Speicherleck, ABER warum?

  Alt 4. Sep 2007, 13:04
Normalerweise bekommst du noch mehr Informationen. z.B. einen Speicherauszug und einen Stackaufrufablauf :


Zitat:
--------------------------------xxxxxxxxxxxxxxxxxxx--------------------------------
Diese Anwendung hat Speicher-Lecks. Die kleineren Speicher-Lecks sind (ausschließlich von Zeigern registrierte Lecks):

5 - 12 bytes: TFileStream x 2

Hinweis: Speicherlecks werden in einer Textdatei im selben Ordner wie diese Anwendung protokolliert. Um die Speicherleckprüfung zu deaktivieren, deaktivieren sie die "{$ EnableMemoryLeakReporting} -Option".

--------------------------------xxxxxxxxxxxxxxx--------------------------------
Ein Speicher-Leck hat folgende Größe : 12

Stackverfolgung - Speicherpuffer wurde zugeordnet (Rückgabeadresse):
4029C3 [system.pas][System][@GetMem][2447]
403B3F [system.pas][System][TObject.NewInstance][8368]
403F06 [system.pas][System][@ClassCreate][9027]
424626 [classes.pas][Classes][TFileStream.Create][5100]
43344D [Graphics.pas][Graphics][FreeMemoryContexts][4670]
4CC3B9 [modules\USM_SecureObjectsTests.pas][USM_SecureObjectsTests][TSecureFileObjectTests.Test_GetSACL][529]
4A29C1 [TestFramework.pas][TestFramework][TTestCase.Invoke][1810]
4A2B31 [TestFramework.pas][TestFramework][TTestCase.RunTest][1833]
42C312 [classes.pas][Classes][StdWndProc][10966]

Der Speicherpuffer wird gegenwärtig für ein Objekt der folgenden Klasse verwendet: TFileStream

The allocation number is: 7442

Aktueller Speicherauszug von 256 Byte, angefangen an der Zeigeradresse: 1A9F3B8:
24 DF 41 00 38 07 00 00 BF C8 EB 80 80 80 80 80 00 00 00 00 51 F7 A9 01 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 5A 27 00 00 C3 29 40 00 12 5A 40 00 4C F1 43 00 FC F6 43 00 2B F4 43 00
F1 F8 43 00 5F 92 40 00 B7 00 4A 00 A9 39 4A 00 E3 29 40 00 2C 5A 40 00 DB F1 43 00 81 F2 43 00
A3 3B 40 00 D8 F3 43 00 A3 3B 40 00 E5 F7 43 00 A3 3B 40 00 0C 00 00 00 00 00 00 00 3F 48 60 06
Man sieht hier z.B. , dass die Methode TSecureFileObjectTests.Test_GetSACL, den Fehler verursacht. Es geht zwar noch tiefer, jedoch sind das interne Funktionen,
die man nicht unbedingt als erstes unter Verdacht setzten muss.


Ich hab die folgenden Compilerdirektiven für FastMM eingeschaltet:

LogErrorsToFile;FullDebugMode;ManualLeakReportingC ontrol;LogMemoryLeakDetailToFile
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat