heaptrc und Konsolenanwendung

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
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

heaptrc und Konsolenanwendung

Beitrag von braunbär »

Wenn ich Heaptrc in den Projekteinstellungen aktiviere, zeigt er mir nach der Beendigung des Programms alle Speicherlecks an - allerdings nicht für sehr lange, denn sobald die Ausgabe der Speicherblöcke beendet ist, schließt sich das Konsolenfenster und die Informationen sind weg.
Ein Workaround ist, ein cmd-Fenster zu öffnen, dort den Zeilenpuffer zu vergrössern (sonst kann ich nicht zurückscrollen) und dann die exe über die Kommandozeile aufzurufen. Das ist aber doch etwas mühsam, geht das irgendwie einfacher?

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: heaptrc und Konsolenanwendung

Beitrag von af0815 »

Ja, kann man auch in eine Datei schreiben. Kann dir aktuell kein Snippet senden, da ich am Mobile schreibe.
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: heaptrc und Konsolenanwendung

Beitrag von braunbär »

Danke für den Hinweis, habe es gefunden: Mit dem Befehl

Code: Alles auswählen

SetHeapTraceOutput('Heap.log'); 

werd diese Informationen ins file heap.Log geschrieben.

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: heaptrc und Konsolenanwendung

Beitrag von af0815 »

Hier mein Snippet

Code: Alles auswählen

// If you want to show heaptrc report dialog only if there were leaks
//   in your application, then put this command somewhere
//   in your main project source file:
{$if declared(UseHeapTrace)}
  GlobalSkipIfNoLeaks := true; // supported as of debugger version 3.1.1
  if FileExists(co_heaptrc) then
      DeleteFile(co_heaptrc);
  SetHeapTraceOutput(co_heaptrc); // supported as of debugger version 3.1.1
  //   HaltOnError := false;             // dont halt a the end of the programm
{$endif}
  DebugLnEnter('****************************************************************');
  DebugLn('Starting...');
 


Das steht bei mir am Anfang in der .lpr Datei drinnen.
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: heaptrc und Konsolenanwendung

Beitrag von braunbär »

Danke, das schaut ja noch besser aus :)

Antworten