Terminalfenster für debug-output unter Linux
-
- Lazarusforum e. V.
- Beiträge: 240
- Registriert: Di 5. Feb 2008, 15:32
- OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
Terminalfenster für debug-output unter Linux
Hallo,
Wenn ich unter Windows arbeite, kann ich mit der Checkbox unter
Projekt - Compilereinstellungen - Linken - Zielbetriebssystemspezifische Einstellungen - Win 32 gui application
einstellen, dass beim Kompilieren ein cmd-Fenster aufgeht in dem die Ausgaben von debugln angezeigt werden.
Was muss ich unter Linux einstellen, damit ich ein terminal-fenster mit diesen Ausgaben bekomme?
Eberhard
Wenn ich unter Windows arbeite, kann ich mit der Checkbox unter
Projekt - Compilereinstellungen - Linken - Zielbetriebssystemspezifische Einstellungen - Win 32 gui application
einstellen, dass beim Kompilieren ein cmd-Fenster aufgeht in dem die Ausgaben von debugln angezeigt werden.
Was muss ich unter Linux einstellen, damit ich ein terminal-fenster mit diesen Ausgaben bekomme?
Eberhard
Ich kann dir nicht ganz folgen. Mit dieser Einstellung wird lediglich erreicht, daß ein störendes Fenster nicht angezeigt wird (und das gilt auch nur für Windows.
Unter Linux reicht es normalerweise, Lazarus aus dem Terminal heraus zu staren um alle Meldungen im Terminal mitlesen zu können. Ansonsten gibt es noch Compilerschalter wie -WC.
knight
Unter Linux reicht es normalerweise, Lazarus aus dem Terminal heraus zu staren um alle Meldungen im Terminal mitlesen zu können. Ansonsten gibt es noch Compilerschalter wie -WC.
knight
-
- Lazarusforum e. V.
- Beiträge: 240
- Registriert: Di 5. Feb 2008, 15:32
- OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
Seither habe ich lazarus immer über ein icon auf dem desktop gestartet.
Nun habe ich es aus einem Terminal raus gestartet
mit diese 4 Varianten:
/usr/lib/lazarus/lazarus
/usr/lib/lazarus/startlazarus
/usr/lib/lazarus/lazarus &
/usr/lib/lazarus/startlazarus &
Ich habe ein Testprogramm erstellt mit nur dieser Funktionalität:
procedure TForm1.Button1Click(Sender: TObject);
begin
debugln('hallo');
end;
Beim Start von Lazarus kommen in das Terminalfenster folgenden Ausgaben:
Beim Kompilieren des Programms kommen in diesem Terminal einige Meldungen an:
nun klicke ich 2 mal auf den Button meines Testprogrammes. Im Terminalfenster kommt nichts an!
Wenn ich nun das Testprogramm beende kommen im Terminalfenster noch die folgenden Zeilen hinzu (die Ausgabe von debugln):
Ich bekomme die Ausgabe von debugln also nicht während der Laufzeit, sondern erst danach.
Irgendeine Einstellung fehlt bei mir wohl noch.
Den Compilerschalter -WC habe ich in den Lazarus-Menüs nicht gefunden.
Nun habe ich es aus einem Terminal raus gestartet
mit diese 4 Varianten:
/usr/lib/lazarus/lazarus
/usr/lib/lazarus/startlazarus
/usr/lib/lazarus/lazarus &
/usr/lib/lazarus/startlazarus &
Ich habe ein Testprogramm erstellt mit nur dieser Funktionalität:
procedure TForm1.Button1Click(Sender: TObject);
begin
debugln('hallo');
end;
Beim Start von Lazarus kommen in das Terminalfenster folgenden Ausgaben:
Code: Alles auswählen
TLazarusManager.Run starting /usr/lib/lazarus/lazarus ...
TApplication.IconChanged - TODO: convert this message...no implementation in gtk or win32
NOTE: help options config file not found - using defaults
invalid Package Link: file "/root/lazarus/zeoslib/packages/lazarus/zcomponent.lpk" does not exist.
TMainIDE.DoLoadLFM A /root/lazarus/gtk1/unit1.pas IsPartOfProject=True
SUCCESS: streaming lfm="/root/lazarus/gtk1/unit1.lfm"
Beim Kompilieren des Programms kommen in diesem Terminal einige Meldungen an:
Code: Alles auswählen
[TMainIDE.DoRunProject] A
TMainIDE.DoInitProjectRun A True 0
TMainIDE.DoInitProjectRun B
TMainIDE.DoSaveAll
TMainIDE.DoSaveProject End
TCompiler.Compile WorkingDir="/root/lazarus/gtk1/" CompilerFilename="/usr/bin/ppc386" CompilerParams=" -S2cgi -OG1 -gl -WG -vewnhi -l -Fu/usr/lib/lazarus/lcl/units/i386-linux/ -Fu/usr/lib/lazarus/lcl/units/i386-linux/gtk2/ -Fu/usr/lib/lazarus/packager/units/i386-linux/ -Fu. -oproject1 -dLCL -dLCLgtk2 project1.lpr"
[TCompiler.Compile] CmdLine="/usr/bin/ppc386 -S2cgi -OG1 -gl -WG -vewnhi -l -Fu/usr/lib/lazarus/lcl/units/i386-linux/ -Fu/usr/lib/lazarus/lcl/units/i386-linux/gtk2/ -Fu/usr/lib/lazarus/packager/units/i386-linux/ -Fu. -oproject1 -dLCL -dLCLgtk2 project1.lpr"
386-linux/ -Fu. -oproject1 -dLCL -dLCLgtk2 project1.lpr"
Hint: Start of reading config file /etc/fpc.cfg
Hint: End of reading config file /etc/fpc.cfg
Warning: You are using the obsolete switch -OG
Free Pascal Compiler version 2.2.0 [2007/08/31] for i386
Copyright (c) 1993-2007 by Florian Klaempfl
Target OS: Linux for i386
Compiling project1.lpr
Linking project1
18 lines compiled, 3.5 sec
1 warning(s) issued
2 hint(s) issued
[TCompiler.Compile] end
[TDebugManager.DoInitDebugger] A
[TCmdLineDebugger] Debug PID: 4782
[Debugger] Log output: &"No symbol table is loaded. Use the \"file\" command.\n"
TGDBMIDebugger.ProcessResult Error: ,msg="No symbol table is loaded. Use the \"file\" command."
[Debugger] Running GDB version: C
[TDebugger.SetFileName] "/root/lazarus/gtk1/project1"
[TDebugManager.DoInitDebugger] END
[TMainIDE.DoRunProject] B TGDBMIDebugger
TDebugManager.RunDebugger A True Destroying=False
TDebugManager.RunDebugger B TGDBMIDebugger
TGDBMIDebugger.StartDebugging WorkingDir="/root/lazarus/gtk1/"
[Debugger] Log output: &"No symbol \"FPC_THREADVAR_RELOCATE_PROC\" in current context.\n"
TGDBMIDebugger.ProcessResult Error: ,msg="No symbol \"FPC_THREADVAR_RELOCATE_PROC\" in current context."
[Debugger] Log output: &"info functions FPC_CPUINIT\n"
[Debugger] Log output: &"info address main\n"
[Debugger] Log output: &"info file\n"
[Debugger] File type: elf32-i386
[Debugger] Entry point: 0x82293f0
[Debugger] Console output: ~"[Thread debugging using libthread_db enabled]\n"
[Debugger] Console output: ~"[New Thread 0xb752e6c0 (LWP 4783)]\n"
[Debugger] Console output: ~"[Switching to Thread 0xb752e6c0 (LWP 4783)]\n"
[WARNING] Debugger: Unknown stopped reason:
[Debugger] Log output: &"info program\n"
[Debugger] Target PID: 4783
Wenn ich nun das Testprogramm beende kommen im Terminalfenster noch die folgenden Zeilen hinzu (die Ausgabe von debugln):
Code: Alles auswählen
[DBGTGT] hallo
[DBGTGT] hallo
[TDebugger.SetFileName] ""
[TMainIDE.DoRunProject] END
Ich bekomme die Ausgabe von debugln also nicht während der Laufzeit, sondern erst danach.
Irgendeine Einstellung fehlt bei mir wohl noch.
Den Compilerschalter -WC habe ich in den Lazarus-Menüs nicht gefunden.
-
- Lazarusforum e. V.
- Beiträge: 240
- Registriert: Di 5. Feb 2008, 15:32
- OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
Problem gelöst!
Bei Start - Startparamameter - Startprogramm muss der Haken gesetzt sein und
eine Zeile eingetragen werden die ein executable aufruft was auf dem system vorhanden ist
Bei mir stand da:
das habe ich geändert auf:
und schon tuts.
Merci
Bei Start - Startparamameter - Startprogramm muss der Haken gesetzt sein und
eine Zeile eingetragen werden die ein executable aufruft was auf dem system vorhanden ist
Bei mir stand da:
Code: Alles auswählen
/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)
Code: Alles auswählen
/usr/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)
Merci