![]() |
BDS2006 - FastMM - ReportMemoryLeaksOnShutdown
Hallo erstmal,
ich habe herausgefunden, dass mir Delphi ein Report über Speicherlecks beim Beenden der Anwendung anzeigt (ReportMemoryLeaksOnShutdown := True). Kennst sich damit jemand aus? Ich würde gerne näheres dazu erfahren weil dort eine Menge Adressen stehen und ich nicht weiß, wo ich anzufangen habe zu suchen :-) Wäre nett wenn jemand dazu etwas sagt. MFG Alex |
Re: BDS2006 - FastMM - ReportMemoryLeaksOnShutdown
Hab mir das im BDS zwar auch noch nicht angesehn, aber (ich vermute mal) theoretisch sollten es die Adressen der Codestellen (Befehle) sein, welche den Speicher (welcher nicht freigegeben wurde) reserviert haben und dazu dann noch die Adresse der Speicherstellen selber.
Soweit ich das in FastMM-QuellCode erkennen konnte, kann man zusätlich noch einige ReportingTools in den FastMM integrieren, welche dann die Adressen in die Dateinamen und Zeilenummer umrechen täten. |
Re: BDS2006 - FastMM - ReportMemoryLeaksOnShutdown
Zitat:
erstell dein Programm mal mit MAP-File (detailliert, auf der seite Projektoptionen/Linker). Danach sollten in der Log von FastMM die jeweiligen Quelltextstellen zu sehen sein an denen nicht freigegebene Objekte alloziert (erzeugt) wurden. Das macht dieses Logfile schon wesentlich "lesbarer". Hoffe es hilft, Ralf |
Re: BDS2006 - FastMM - ReportMemoryLeaksOnShutdown
ok Danke.
Das mit der MapFile werde ich mal testen. MFG Alex |
Re: BDS2006 - FastMM - ReportMemoryLeaksOnShutdown
Hallo,
eine Frage habe ich dann doch noch :-) Wo finde ich denn diese Map-File? MFG Alex |
Re: BDS2006 - FastMM - ReportMemoryLeaksOnShutdown
Hab sie gefunden :-)
Danke schön PS: Liegt im Projektverzeichnis :-) MFG Alex |
Re: BDS2006 - FastMM - ReportMemoryLeaksOnShutdown
Ansonsten einfach mal ein par Zeilen der Infos zeigen, falls es dennoch nicht verständlich ist ... irgendwer wird da bestimmt noch was erkennen können ^^
|
Re: BDS2006 - FastMM - ReportMemoryLeaksOnShutdown
Hallo,
das Problem ist, dass es sich alles um selbstgeschriebene Kompos aus unserer Firma handelt, daher kein Source möglich... Der Report von Delphi zeigt immer nur an z.B. 51 - 63 Bytes TStringList 1x Mein Problem ist, da "er" keine richtigen Adressen anzeigt (nur Bytes 51-63) wo ich die Fehler im Sourcen suchen soll... MFG Alex |
Re: BDS2006 - FastMM - ReportMemoryLeaksOnShutdown
Im Report sollte auch noch ein Aufrufstack vorhanden sein wann diese Stringlist angelegt wurde. Nun mußt du suche wo diese Stringlist eigentlich freigegeben werden sollte und überprüfen ob dies auch geschieht.
|
Re: BDS2006 - FastMM - ReportMemoryLeaksOnShutdown
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Bernhard,
hier ist ein Screenshot des Reports, von einer ganz einfachen Anwendung wo nur im FormCreate eine StringListe initialisiert wird aber eben nicht freigegeben wird. Ebenfalls habe ich in der Zip-Datei die Map-Datei angehangen die mir Delphi erstellt.
Delphi-Quellcode:
Vielleicht kannst du mir da weiter helfen.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } SL : TStringList; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin ReportMemoryLeaksOnShutdown := True; SL := TStringList.Create; end; end. MFG Alex |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz