AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ReportMemoryLeaksOnShutDown

Ein Thema von venice2 · begonnen am 21. Jun 2020 · letzter Beitrag vom 22. Jun 2020
 
venice2
(Gast)

n/a Beiträge
 
#23

AW: ReportMemoryLeaksOnShutDown

  Alt 21. Jun 2020, 23:28
Habe mir das Video angesehen und eingerichtet.
Ändert aber nichts an der Ausgabe ausgenommen das Log ist etwas detaillierter und gibt mir genau das aus was ich schon wusste.

Result := GetExportPtr(Path, Delimiter); // Hier bleibt EurekaLog stehen damit kann ich aber nichts anfangen.

Das wird so auch in das Log geschrieben das in dieser Funktion etwas nicht freigegeben wird.
Was das ist, ist mir ebenfalls bekannt.
Ich alloziere Speicher der nicht freigegeben wird (angeblich).
Ich bekomme hier 14 Speicher Lecks weil ExportPtr 14 mal aufgerufen wird innerhalb einer schleife und die größe des Speichers anhand des Strings strExport neu zugewiesen wird.

ExportPtr := AnsiStrAlloc(Length(strExport) + 1);

ExportPtr

Seltsam ist nur das ich ihn freigebe wenn die DLL beendet wird und zwar in Destroy.

Delphi-Quellcode:
destructor TMyLib.Destroy;
begin
  StrDispose(ExportPtr);
end;
EDIT:
OK. Das ist mein Fehler.
Zitat:
Ich bekomme hier 14 Speicher Lecks weil ExportPtr 14 mal aufgerufen wird innerhalb einer schleife und die größe des Speichers anhand des Strings strExport neu zugewiesen wird.
Ich gebe den String frei.
Aber!
Wenn ich diesen jedesmal innerhalb der Schleife neu Alloziere dann Alloziere ich 14x mal neuen Speicher und der vorherige wird nicht freigegeben.

Ich habe die Zuweisung jetzt aus der Schleife herausgenommen und weise den Speicher erst zu wenn strExport sein Maximum(Length) erreicht hat.
Also einmalig direkt nach der Schleife!

Siehe da die Speicherlecks sind weg.

Geändert von venice2 (22. Jun 2020 um 00:25 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es 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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 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