Breakpoint Anzahl Durchläufe?

Für Fragen rund um die Ide und zum Debugger
Antworten
Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Breakpoint Anzahl Durchläufe?

Beitrag von fliegermichl »

Moinsens,

in Delphi konnte ich bei den Haltepunkt Bedingungen einen Durchlaufzähler setzen.
Bei Funktionen die sehr häufig aufgerufen werden, (bevor es kracht) habe ich diesen Wert sehr hoch gesetzt und das Programm laufen lassen bis es kracht.
Im Ereignisprotokoll konnte ich dann nachsehen, wieviele Durchläufe es waren, bevor es geknallt hat.

Dann hab ich den Durchlaufzähler einen geringer als diesen Wert gesetzt und der Debugger hat dann kurz vorm Knall angehalten.

In Lazarus kann man ebenfalls diesen Durchlaufzähler eintragen, aber im Protokoll ist nichts zu finden.

Gibt es da eine funktionierende Lösung für oder muß ich mir mit DebugLn etc. helfen?

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: Breakpoint Anzahl Durchläufe?

Beitrag von af0815 »

BTW: Welche Debuggereinstellung verwendest du ? gdb oder fpdebug ?

Der Debugger schreibt nichts mit vom Umlaufzähler. Er läuft ganz einfach bis zur Bedingung (oder Knall wenn vorher). Die Debugger sind an die IDE angekoppelt, nicht integriert wie bei Delphi, daher ist für den Breakpoint der Debugger und nicht die IDE zuständig.

Mit Debugln ist der normale Ansatz für mich.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Breakpoint Anzahl Durchläufe?

Beitrag von fliegermichl »

Ich hab grad mal unter Werkzeuge -> Einstellungen -> Debugger -> Ereignisprotokoll geschaut. Da kann man unter "Nachrichten" ein Häkchen bei "Haltepunkt" setzen. Dann erscheint zumindest mal der bei den Haltepunkteigenschaften eingegebene Text, den man unter dem Punkt "Protokoll" angeben kann, in der Ereignisliste. Was jetzt noch fehlt wäre die Nummer des Durchlaufs.
Man kann natürlich die Anzahl der Einträge zählen - aber wenn das ein paar Tausend sind ...

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: Breakpoint Anzahl Durchläufe?

Beitrag von martin_frb »

Der Count wird im "Breakpoint" Fenster angezeigt....

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Breakpoint Anzahl Durchläufe?

Beitrag von Soner »

Bei so etwas habe ich, auch unter Delphi, folgendes gemacht:

Code: Alles auswählen

 if i=20 then // i ist Durchlaufszähler, 20 ist da wo ich es anhalten möchte
   beep;   // hier Breakpoint setzen.
Dieses Vorgehen ist einfach und klappt mit jedem Debugger und jede Sprache.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Breakpoint Anzahl Durchläufe?

Beitrag von fliegermichl »

martin_frb hat geschrieben:
Sa 25. Sep 2021, 01:56
Der Count wird im "Breakpoint" Fenster angezeigt....
Tatsache, Danke für die Info. Also braucht man gar nix drumrum programmieren.
laufzaehler.png
laufzaehler.png (18.08 KiB) 1423 mal betrachtet

Antworten