Debugging

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Debugging

Beitrag von Bauer321 »

Wenn ich meine Anwendung(en) debuggen möchte und einen Haltepunkt erstelle werden auch alle Units durchgegangen die ich nicht selber programmmiert hab.
Ist es möglich diese automatisch zu überspringen? - Also ich würde gerne nur meinen eigenen Quellcode debuggen, da dieser bisher auch immer die Fehler enthielt und nicht andere Units.
www.mcpatcher.net | www.hoeper.me

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:

Re: Debugging

Beitrag von Christian »

Du musst nicht in jede Funktion reinspringen (F7) du kannst auch Funktionen überspringen (F8)
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Debugging

Beitrag von Bauer321 »

Dann werden ja aber immer die Dateien alle in Lazarus geöffnet.
www.mcpatcher.net | www.hoeper.me

martin_frb
Beiträge: 572
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: Debugging

Beitrag von martin_frb »

Wann genau wird eine andere datei geoeffnet?


Du setzt einen breakpoint. z.b in Button1Click
Dann kannst du *innerhalb* von Button1Click mit F8 debuggen.
Am ende von Button1Click musst du die App mit F9 weiterlaufen lassen, bis wieder ein breakpoint in deinem Code erreicht wird.

Wenn Button1Click click folgendes enthält

Code: Alles auswählen

  a := MeineFunctionIrgendwas; 

Dann kannst du mit F7 in MeineFunctionIrgendwas hinein-steppen

ABER:

Code: Alles auswählen

  a := MeineFunctionIrgendwas(self.Caption); 

stept leider mit F7 erst in self.caption....

Abhilfe 1)

Code: Alles auswählen

 
a := MeineFunctionIrgendwas(
  self.Caption
);

mehrzeilig.

DIe Ausführung haelt erst an "self.Caption" (F8), and dann an "a := MeineFunctionIrgendwas(" (F7)

Abhilfe 2)
etwas mehr Komfort

Kompiliere Die IDE neu, und entferne allen packages (wie LCL) die debug Info.
Jede package oeffnen, und in den Package abschalten.

ggf auch unter Menu: Tools/Konfig build IDE > nachsehen und Parameter wie -g -gw -gs entfernen

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Debugging

Beitrag von Bauer321 »

das zweite hört sich sehr gut an allerdings habe ich bisher kaum erfahrungen mit dem neu kompilieren der ide gemacht.

könnte mir da vll noch jemand weiterhelfen?
www.mcpatcher.net | www.hoeper.me

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Debugging

Beitrag von MAC »

Das sollte nicht das Problem sein, die IDE kompiliert man ja bei jedem neuen Package was man installiert auch neu ...
>> Werkzeuge >> Kompiliere Lazarus mit Profil: *hier steht dann dein spezielles oder irgendein Profil* >> auf Ja klicken.
Im Idealfall war's das schon und alles läuft glatt. Lazarus geht aus und startet 2 Sekunden mit der neu Kompilierten Version. Im schlimmsten Fall wird das Kompilieren abgebrochen und es passiert einfach nichts...

und debug Dateien enden soweit ich weis mit .dbg , also sollte das kein Problem darstellen :)

Code: Alles auswählen

Signatur := nil;

martin_frb
Beiträge: 572
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: Debugging

Beitrag von martin_frb »

MAC hat geschrieben:Das sollte nicht das Problem sein, die IDE kompiliert man ja bei jedem neuen Package was man installiert auch neu ...
>> Werkzeuge >> Kompiliere Lazarus mit Profil: *hier steht dann dein spezielles oder irgendein Profil* >> auf Ja klicken.
Im Idealfall war's das schon und alles läuft glatt. Lazarus geht aus und startet 2 Sekunden mit der neu Kompilierten Version. Im schlimmsten Fall wird das Kompilieren abgebrochen und es passiert einfach nichts...

und debug Dateien enden soweit ich weis mit .dbg , also sollte das kein Problem darstellen :)


In diesem falle waere es am besten die IDE clen zu builden

1) Package LCL (ggf auch LazUtils und andere) oeffnen:
Optionen (Package toolbar) / Linker / Checkbox debug Info > AUS

2)
Menu: Tool / Configure Build IDE
Radio-button "clean all"
ggf aus dem options field, alle optionen mit -g.... entfernen

-----------
2 ist gar nicht noetig.

Es reicht die Package neu zu bauen, und das sollte automatisch passieren, wenn die Optionon sich aendern

Also einfach nur 1

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Debugging

Beitrag von Bauer321 »

Vielen Dank euch!

martin_frb, da ist genau das was ich gesucht habe und es wird mir das debuggen in den meisten fällen erheblich vereinfachen.
www.mcpatcher.net | www.hoeper.me

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:

Re: Debugging

Beitrag von Christian »

versteh ich immer noch ned was du da vereinfachen willst aber egal
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
stoffel_hessen
Beiträge: 66
Registriert: Sa 18. Jun 2022, 12:27
OS, Lazarus, FPC: Windows 11 (Version 2.2.2, FPC 3.2.2)
CPU-Target: x86 64Bit
Wohnort: Riedstadt

Re: Debugging

Beitrag von stoffel_hessen »

martin_frb hat geschrieben:
Mo 27. Mai 2013, 11:29

In diesem falle waere es am besten die IDE clen zu builden

1) Package LCL (ggf auch LazUtils und andere) oeffnen:
Optionen (Package toolbar) / Linker / Checkbox debug Info > AUS

2)
Menu: Tool / Configure Build IDE
Radio-button "clean all"
ggf aus dem options field, alle optionen mit -g.... entfernen

-----------
2 ist gar nicht noetig.

Es reicht die Package neu zu bauen, und das sollte automatisch passieren, wenn die Optionon sich aendern

Also einfach nur 1
Ich greife noch mal diesen alten Tread auf, da ich genau das gleiche Problem habe, aber leider die Punkte 1 und 2 nicht finde.
Habe in den Menüs die beiden nachfolgen Stellen gefunden,
Lazarus Package.jpg
Lazarus Package.jpg (19.9 KiB) 1345 mal betrachtet
Lazarus kompilieren.jpg
Lazarus kompilieren.jpg (56.56 KiB) 1345 mal betrachtet
mir ist aber nicht klar wie es hier weiter geht, bzw. was ich hier einstellen bzw. auswählen muss.

Danke für eure Unterstützung
Gruß Christopher

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

Re: Debugging

Beitrag von theo »

Irgendwie hast du Probleme mit dem Debugger, die sonst niemand hat. :wink:
Tipp: Es gibt auch ein Leben ohne Debugger! :lol:

Aber zu deiner Frage:
In deinem Bild steht doch "Geladenes Package öffnen"
Dort kannst du dann LCL und Konsorten öffnen, "Debuggen"-Einstellungen ändern und neu kompilieren.

Ich würde das allerdings nicht machen. Sei doch froh, wenn du die Debug-Informationen hast, man braucht ja nicht in alles hineinsteppen.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
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: Debugging

Beitrag von af0815 »

Übrigends war der Thread knappe 9 Jahre alt, da fragt sich ob die Infos noch immer stimmen.
von martin_frb » Montag 27. Mai 2013, 11:29
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

martin_frb
Beiträge: 572
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: Debugging

Beitrag von martin_frb »

Schaut mal hier: https://forum.lazarus.freepascal.org/in ... #msg449242

Bitte als allererstes sicherstellen das Ihr FpDebug nutzt.

Antworten