Heaptrc Anzeige unterbinden wenn kein Speicherleck?
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Heaptrc Anzeige unterbinden wenn kein Speicherleck?
Hallo zusammen,
ich compiliere gerade mit debug und heaptrc.
Ich hatte es schon mal gelesen, kann es aber gerade nicht finden.
Es gibt eine Möglichkeit die Anzeige des Heaptrc zu unterbinden wenn keine Speicherlecks gefunden wurden.
Weiß jemand gerade wie das nochmal ging?
ich compiliere gerade mit debug und heaptrc.
Ich hatte es schon mal gelesen, kann es aber gerade nicht finden.
Es gibt eine Möglichkeit die Anzeige des Heaptrc zu unterbinden wenn keine Speicherlecks gefunden wurden.
Weiß jemand gerade wie das nochmal ging?
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Heaptrc Anzeige unterbinden wenn kein Speicherleck?
Das war's!
Dankeschön
Dankeschön
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Heaptrc Anzeige unterbinden wenn kein Speicherleck?
Und noch einer.
Wenn ich bei den Debuggereinstellungen die Erstellmodi Debug und Release erzeuge und dann Release auswähle, compiliere und dann das Programm starte, bekomme ich die Anzeige "Enable dwarf2 The Project does not write debug info in Dwarf format. The fpDebug internal Dwarf-debugger supports only Dwarf" und ich kann dann verschiedene Dwarf Formate oder Abbrechen wählen.
Das ist insofern korrekt, da ich ja ohne Debuginformationen compiliere.
Ich habe auch unter Werkzeuge -> Optionen -> Debugger -> Debugger Backend fpDebug eingestellt.
Das soll aber doch nur gelten wenn ich überhaupt debuggen will?
Wenn ich bei den Debuggereinstellungen die Erstellmodi Debug und Release erzeuge und dann Release auswähle, compiliere und dann das Programm starte, bekomme ich die Anzeige "Enable dwarf2 The Project does not write debug info in Dwarf format. The fpDebug internal Dwarf-debugger supports only Dwarf" und ich kann dann verschiedene Dwarf Formate oder Abbrechen wählen.
Das ist insofern korrekt, da ich ja ohne Debuginformationen compiliere.
Ich habe auch unter Werkzeuge -> Optionen -> Debugger -> Debugger Backend fpDebug eingestellt.
Das soll aber doch nur gelten wenn ich überhaupt debuggen will?
Zuletzt geändert von fliegermichl am Fr 28. Okt 2022, 10:50, insgesamt 1-mal geändert.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Heaptrc Anzeige unterbinden wenn kein Speicherleck?
So ganz klappt das nicht.
Ich habe in der .lpr Datei als erstes folgendes stehen
Dann kommt das Tracefenster aber auch dann nicht, wenn Leaks vorhanden sind (Hab ich jetzt zum testen einfach mal provoziert)
Lazarus 2.2.0 (rev lazarus_2_2_0-80-g2187550) FPC 3.2.2 x86_64-win64-win32/win64
Ich habe in der .lpr Datei als erstes folgendes stehen
Code: Alles auswählen
{$ifopt D+}
{$if declared(UseHeapTrace)}
GlobalSkipIfNoLeaks := true; // supported as of debugger version 3.1.1
{$endif}
{$endif}
{$endif}
Lazarus 2.2.0 (rev lazarus_2_2_0-80-g2187550) FPC 3.2.2 x86_64-win64-win32/win64
-
- Lazarusforum e. V.
- Beiträge: 317
- Registriert: So 5. Mai 2019, 16:52
- OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
- CPU-Target: x86_64, i386
- Wohnort: Bayreuth
Re: Heaptrc Anzeige unterbinden wenn kein Speicherleck?
Das ifopt kannst du dir sparen. UseHeapTrace gibt es ja nur, wenn du im Debug-Modus bist. Das heißt, im Release-Modus wird das eh automatisch rausgenommen. Damit funktioniert das bei mir immer gut.
Tipp für PostgreSQL: www.pg-forum.de
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Heaptrc Anzeige unterbinden wenn kein Speicherleck?
Danke für den Hinweis. Das Tracefenster erscheint dann aber immer noch nicht auch wenn Leaks vorhanden sind.
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- 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: Heaptrc Anzeige unterbinden wenn kein Speicherleck?
Hast du dir in dem verlinkten Thread mein Beispiel angesehen. Das steht im Code zwischen begin und end. Nicht sonst irgendwo.
Das ist einfach eine globale Variable.
Ist das ganze mit einem frischen Projekt getestet oder mit einem 'alten' ?
Das ist einfach eine globale Variable.
Das kommt mir irgendwie komisch vor. Wenn ich im Release bin, dann habe ich keine Debuginfos - wozu auch.Wenn ich bei den Debuggereinstellungen die Erstellmodi Debug und Release erzeuge und dann Release auswähle, compiliere und dann das Programm starte, bekomme ich die Anzeige "Enable dwarf2 The Project does not write debug info in Dwarf format. The fpDebug internal Dwarf-debugger supports only Dwarf" und ich kann dann verschiedene Dwarf Formate oder Abbrechen wählen.
Das ist insofern korrekt, da ich ja ohne Debuginformationen compiliere.
Ich habe auch unter Werkzeuge -> Optionen -> Debugger -> Debugger Backend fpDebug eingestellt.
Das soll aber doch nur gelten wenn ich überhaupt debuggen will?
Ist das ganze mit einem frischen Projekt getestet oder mit einem 'alten' ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Heaptrc Anzeige unterbinden wenn kein Speicherleck?
Ich habe Martin über die Mailing-Liste angeschrieben, ob die Abfrage der Debug-Information nicht herausgenommen werden kann, wenn keine Debug-Informationen erzeugt werden.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Heaptrc Anzeige unterbinden wenn kein Speicherleck?
Ich habe das mit dem GlobalSkipIfNoLeaks eben nochmal ausprobiert und plötzlich funktioniert es?!?