[IDE v0.9.22 Beta --> Variablen überwachen : wie?

Für Fragen rund um die Ide und zum Debugger
bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

[IDE v0.9.22 Beta --> Variablen überwachen : wie?

Beitrag von bembulak »

Hallo zäme!

Nach einiger Abstinenz habe ich mich wieder durch gerungen mit FPC/Laz. wieder was zu machen.

Um ehrlich zu sein, bin ich recht zu frieden, auch wenn mich die Anzahl an Features erschlägt, ich echte Probleme mit der Dokumentation habe und ein wenig Umdenken muss, damit ich auch alles verstehe.

So, nun zu meinem aktuellen Problem:

Ich komme mit dem Debuggen irgendwie nicht klar.

Mein momentaner Source sieht so aus:

Code: Alles auswählen

unit main;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
  Buttons;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    btn_calc_bmi: TButton;
    edt_groesse: TEdit;
    edt_weight: TEdit;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure btn_calc_bmiClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 
 
var
  Form1: TForm1; 
  cm, weight, bmi : Double;
 
implementation
 
{ TForm1 }
 
procedure TForm1.btn_calc_bmiClick(Sender: TObject);
  var
     len : Integer;
 
begin
 
  cm := StrToFloat(edt_groesse.Text);
  weight := StrToFloat(edt_weight.Text);
 
  bmi := (weight / sqr(cm/100));
 
  len := Length(FloatToStr(bmi));
 
  Label3.Text := FloatToStr(bmi);
 
end;
 
initialization
  {$I main.lrs}
 
end.
Was möchte ich?
Nun, ich möchte zur Laufzeit irgendwie alle vorkommenden Variablen (cm, weight, bmi und die lokale Variable len) überwachen.
Doch irgendwie bekomme ich das nicht auf die Reihe!

Ehrlich - ich habe gar keinen Plan.
Wird mir ein Fenster nicht angezeigt, in dem die Variablen gelistet sind? Oder wie?

Für jede Hilfe wäre ich natürlich sehr dankbar.

MFG

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Eigentlich musst du nur die Maus 2 sek über ne variable halten dann wird sie ausgewertet. Aber zumindest in den letzten SVN Versionen geht da was schief.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Ah, du meinst das
varname = ???
Aha. Schade, dass dies nicht funktioniert.
Kann man sich da irgendwie abhelfen, ohne jedesmal eine Messagebox mit dem Wert zu zeigen?

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ja, in dem du bei Startparameter das Start Programm aktivierst und dann per Writeln den Inhalt ausgibst. Oder bei einer Schleife auch im Caption vom Form1 oder so.
MFG
Michael Springwald

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Danke, ich werdes dann mal ausprobieren.
Das mit der Console ist ok.

Da ich auch manchmal gewzungen bin mit Windows zu arbeiten:
/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)
Wird doch auch ein Windows-Pendant haben, oder?

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Naja nicht so optimal ich würd Debugln aus der lclproc nemen das funktioniert 1. auch unter windows und 2. kann man sich mit --debog-log=myfile.txt gleich ein debugfile schreiben lassen auch später beim endbenutzer mal
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

also ich hatte damit keine Probleme auch unter Windows ging es !
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

unter windows hast du keine konsole es gibt also ne nette access violation wenn du writeln aufrufst also erzähl net das das gehen könnt. Wenn keine pipe auf den stdout gebunden ist krachts...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

seltsam bei mir ging es. evlt. wahren es andere Paramter auf jeden Fall wahr dort auch ein Fenster.
Genau wie unter Linux wenn ich es anschalte.
MFG
Michael Springwald

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

Beitrag von theo »

Christian hat geschrieben:unter windows hast du keine konsole es gibt also ne nette access violation wenn du writeln aufrufst also erzähl net das das gehen könnt. Wenn keine pipe auf den stdout gebunden ist krachts...
Das geht schon. Musst nur beim Linker Tab "Win 32 GUI Application" wegklicken.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

ist mir klar macht man ja aber nicht immer schon gar nicht im auslieferzustand
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Hallo Leute!

Sorry, ich muss den Thread wieder ausgraben, denn ich komme nicht weiter.

Weder die Hilfestellung oben, noch Information im Wiki haben mich weiter gebracht.
Leider konnte ich die Angaben noch nicht unter Linux testen, aber unter Windows habe ich jedenfalls noch keine Möglichkeit gefunden, einen Output zu finden.

Ein Tip noch wäre ganz nett. Danke.

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

Beitrag von theo »

Steht doch oben: beim Linker Tab "Win 32 GUI Application" wegklicken.
Dann kannst du mit DebugLn oder einfach Writeln die Variablen ausgeben.
Sonst auch mit dem Debugger z.B. "überwachte Ausdrücke", dann musst du aber Breakpoints setzten und durch den Code "steppen".

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Sorry, irgendwo hatte ich wohl einen Knoten im Hrin.

Ich habe ein neues Testprojekt erstellt und nun geht es. Danke. :oops:

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

bembulak hat geschrieben:irgendwo hatte ich wohl einen Knoten im Hrin.
uuh, das stell ich mir ziemlich kompliziert vor... ;)

Antworten