ReportMemoryLeaksOnShutdown

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

ReportMemoryLeaksOnShutdown

Beitrag von braunbär »

In Delphi setzt man diese Variable, wenn man überprüfen will, ob man in einem Programm Speicherlecks hat. Gibt es etwas vergleichbares in Free Pascal?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: ReportMemoryLeaksOnShutdown

Beitrag von af0815 »

JA. Ist übgrigends gesetzt wenn man BuildModes verwendet und Debug auswählt.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: ReportMemoryLeaksOnShutdown

Beitrag von braunbär »

Danke für die Antwort.

Das ist natürlich gescheit, so spart man sich Defines im Code, um das nur beim Testen zu aktivieren.

Trotzdem: Wie heißt die entsprechende Variable? ReportMemoryLeaksOnShutdown kennt der FPC nicht. Oder wird das generell nur über die Debug-Umgebungsoption eingeschaltet?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: ReportMemoryLeaksOnShutdown

Beitrag von af0815 »

Google sagt: http://wiki.freepascal.org/heaptrc

In den Projekteinstellungen unter Debugging findet man auch den Hinweis auf heaptrace. Es ist bei Freepascal keine Variable, sondern eine Unit.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: ReportMemoryLeaksOnShutdown

Beitrag von theo »


braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: ReportMemoryLeaksOnShutdown

Beitrag von braunbär »

Danke.

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: ReportMemoryLeaksOnShutdown

Beitrag von braunbär »

Das funktioniert im Prinzip.
Aber wenn alles in Ordnung ist, kommt am Programmende diese "Fehlermeldung":

Code: Alles auswählen

---------------------------
Error
---------------------------
Heap dump by heaptrc unit
1870 memory blocks allocated : 1849761/1855832
1870 memory blocks freed     : 1849761/1855832
0 unfreed memory blocks : 0
True heap size : 720896 (80 used in System startup)
True free heap : 720816
 
---------------------------
OK   
---------------------------
 


Ist das beabsichtigt? Wenn es kein Speicherleck gibt, hätte ich lieber gar keine Meldung, das sollte ja eigentlich der Normalfall sein.

siro
Beiträge: 730
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: ReportMemoryLeaksOnShutdown

Beitrag von siro »

Das Fenster kommt, wenn Heaptrace eingeschaltet ist, bei mir auch immer.
Mich hatte es verwirrt, warum dort "Error" steht wenn kein Fehler aufgetreten ist.
Hätte man vielleicht eher Heapstatus nennen sollen...
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: ReportMemoryLeaksOnShutdown

Beitrag von Michl »

braunbär hat geschrieben:Wenn es kein Speicherleck gibt, hätte ich lieber gar keine Meldung
Geht auch: http://wiki.freepascal.org/heaptrc#Show_report_only_on_leak

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: ReportMemoryLeaksOnShutdown

Beitrag von braunbär »

Danke, großartig.
Das ganze Lazarus ist halt schon extrem komplex, da werde ich noch eine Weile brauchen, um die unzähligen Features halbwegs zu checken.

Es steht ja ohnehin ganz klar in der Online Hilfe, aber es steht eben verdammt viel in dieser Hilfe, und da überliest man sehr leicht gerade das, was man eigentlich brauchen würde. Zumindest geht es mir so.
Schön, dass es dieses Forum gibt.

Antworten