Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Für Fragen rund um die Ide und zum Debugger
Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von Heinrich Wolf »

Hallo,

ich kriege beim Debuggen kein Konsolenfenster geöffnet.

Gruß
Heiner

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von shokwave »

Ich selbst, hab es noch nicht gemacht, aber guck mal unter "Start/Startparameter", da gibt es "Startprogramm verwenden"(ggf. Parameter anpassen). Das sollte eine Konsole öffnen.
mfg Ingo

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von u-boot »

Bei "startprogramm verwenden" funktioniert das debuggen nicht. (zumindest war das lange zeit bei gui-programmen so).

Mein vorgehen für sowas war so:

Lazarus in einem Konsolenfenster öffnen ... die Umsetzung der kommandozeilenausgabe braucht manchmal paar zeilen vorlauf bis der Puffer von einigen Zeilen dann im Konsolenfenster ausgegeben wird.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von Heinrich Wolf »

Danke für die Hilfeversuche!

Wenn ich gnome-terminal als Startprogramm verwende, bleibt mein Programm an Breakpoints nicht stehen. Auch die Parameter für mein Programm machen Probleme. Ich möchte leere Parameter und Parameter mit Leerzeichen verwenden. Auf der Shell kann ich Anführungszeichen oder Apostrophe um diese Parameter oder \ vor die Leerzeichen setzen. Das klappt bei Lazarus nicht.

Wenn ich Lazarus im gnome-terminal starte, funktionieren die Breakpoints, aber ich kriege keine Ausgabe von meinem Programm (writeln();) und readln; wartet nicht auf eine Eingabe.

Gruß
Heiner

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von u-boot »

Heinrich Wolf hat geschrieben: Wenn ich gnome-terminal als Startprogramm verwende, bleibt mein Programm an Breakpoints nicht stehen.
das ist die genauere beschreibung von meinem "debuggen funktioniert nicht"
Heinrich Wolf hat geschrieben: Auch die Parameter für mein Programm machen Probleme. Ich möchte leere Parameter und Parameter mit Leerzeichen verwenden.
Auf der Shell kann ich Anführungszeichen oder Apostrophe um diese Parameter oder \ vor die Leerzeichen setzen. Das klappt bei Lazarus nicht.
eh ja startparameter wird dann schwierig mit debuggen
Heinrich Wolf hat geschrieben: Wenn ich Lazarus im gnome-terminal starte, funktionieren die Breakpoints, aber ich kriege keine Ausgabe von meinem Programm (writeln();) und readln; wartet nicht auf eine Eingabe.
bitte 200 mal writeln aufrufen. Dann kam bei mir immer irgendwann die Ausgabe.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von carli »

u-boot hat geschrieben:
Heinrich Wolf hat geschrieben: Wenn ich Lazarus im gnome-terminal starte, funktionieren die Breakpoints, aber ich kriege keine Ausgabe von meinem Programm (writeln();) und readln; wartet nicht auf eine Eingabe.
bitte 200 mal writeln aufrufen. Dann kam bei mir immer irgendwann die Ausgabe.
Ein FlushThread;-Aufruf im Programm nach einem writeln tuts auch ;)

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von Heinrich Wolf »

carli hat geschrieben:Ein FlushThread;-Aufruf im Programm nach einem writeln tuts auch ;)
Ich hab FlushThread eingebaut und krieg immer noch keine Ausgabe.

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von u-boot »

carli hat geschrieben:Ein FlushThread;-Aufruf im Programm nach einem writeln tuts auch ;)
warum richtig wenns falsch auch schon ging :D
aber ok wenigstens weiss ich jetzt wie es richtig geht :)
Heinrich Wolf hat geschrieben:Ich hab FlushThread eingebaut und krieg immer noch keine Ausgabe.
Ich rate mal das könnte an der Ausführlichkeit der Compilerausgaben liegen.
Schätzungsweise sollte Parameter -vd verwendet werden.
Falls es nicht geht einfach mal mit -va probieren.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von carli »

Heinrich Wolf hat geschrieben:
carli hat geschrieben:Ein FlushThread;-Aufruf im Programm nach einem writeln tuts auch ;)
Ich hab FlushThread eingebaut und krieg immer noch keine Ausgabe.
Uff,
bei mir hat ein Flush(stdout);FlushThread; immer geholfen.
Vorausgesetzt, dein Programm macht _wirklick_ eine Ausgabe

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von Heinrich Wolf »

-va bringt nicht die gewünschten Ausgaben.

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von Heinrich Wolf »

flush(stdout); bringt auch nichts.
Ich hab Lazarus 0.9.31 aus svn

martin_frb
Beiträge: 588
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von martin_frb »

eine wirklich gute Lösung gibt es nicht.

Aber so geht es:

Irgendein Terminal, öffnen (unabhängig von Lazarus)
Mittels "tty" den Namen des Terminal erfahren.

In Lazarus, unter optionen/debugger, diesen eintragen.

App starten => in/output gehen an das Terminal

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von mse »

martin_frb hat geschrieben:eine wirklich gute Lösung gibt es nicht.
Naja, MSEide hat ein eigenes "Target Console" Fenster, welches sowohl unter Linux als auch unter Windows funktioniert. Unter Linux wird ein pseudo terminal benutzt, damit FPC die writeln Ausgabe automatisch flushed. Unter Windows gibt es keine solche Möglichkeit
http://www.mail-archive.com/fpc-devel@l ... 04947.html

Da muss entweder eine externe Windows-Konsole verwendet werden ('Project'-'Options'-'Debugger'-'External-Console'), flush(output) aufgerufen oder die FlushFunc in TextRec(output) auf InOutFunc gesetzt werden.

Code: Alles auswählen

TextRec(output).FlushFunc:= TextRec(output).InOutFunc;
Martin

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von Heinrich Wolf »

@martin_frb
Danke! Das klappt. Endlich eine qualifizierte Antwort. Warum soll diese Lösung nicht wirklich gut sein?

@mse
Um Windows ging es nicht. Da klappt das Debuggen ohne Verrenkungen.

martin_frb
Beiträge: 588
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Wie debuggt man Konsole Anwendungen unter Lazarus für Linux?

Beitrag von martin_frb »

in SVN-Trunk gibt es jetzt ein console-window.

Extrem basic, gibt alle ausgaben des Programms wieder, verarbeitet aber keine escape sequencen, wie andere terminals
Eingabe ans Programm: Nur ganze Zeilen.

Ist noch in der Entwickelung

Antworten