EInen Schritt weiter (Step over) mit F8 landet im Assemblerfenster

Für Fragen rund um die Ide und zum Debugger
Antworten
KreuzBlick
Beiträge: 36
Registriert: Fr 3. Mai 2019, 17:45
OS, Lazarus, FPC: Win8.1 (L 2.2.4 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Saarland

EInen Schritt weiter (Step over) mit F8 landet im Assemblerfenster

Beitrag von KreuzBlick »

Beim Testen eines Lazarusprogramms (IDE 2.0.10) tritt bei mir die Schwierigkeit auf, dass ich beim Durchlaufen des Quelltextes im Einzelschritt mit F8 manchmal bei bestimmten Zeilen statt in der nächsten in einem Assemblerfenster lande, aus dem ich nur sehr schwer wieder herauskomme. Ich kann zwar Haltepunkte dahinter setzen und mit F9 erreichen, ich kann auch Positionen hinter der Stelle mit F4 anspringen. Aber mit F8 bleibe ich regelmäßig an denselben Stellen hängen.
Manchmal ist es aber sehr nützlich, mit F8 durch die Programmzeilen durchzugehen. Leider ist es mir nicht gelungen, ein einfaches Beispiel zu erzeugen, wo das passiert.

Ich habe lediglich gesehen, dass das Thema vor mehr als 2 Jahren mal im englischen Lazarusforum angesprochen worden ist. Das scheint aber ohne Ergebnis geblieben zu sein.

Wenn inzwischen in dieser Sache nichts mehr passiert ist, werde ich wohl damit leben müssen. Vielleicht kennt aber jemand eine Lösung, das wäre prima.
Viele Grüße
Gerold

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: EInen Schritt weiter (Step over) mit F8 landet im Assemblerfenster

Beitrag von six1 »

Kenne ich...
Ich drücke einfach nicht mehr F8, sondern klicke mit der Maus... mit dem Erfolg, dass mir der Mauszeiger manchmal ein klitzekleines Stück nach links rutscht und ich den Prozess beende :lol:
Gruß, Michael

KreuzBlick
Beiträge: 36
Registriert: Fr 3. Mai 2019, 17:45
OS, Lazarus, FPC: Win8.1 (L 2.2.4 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Saarland

Re: EInen Schritt weiter (Step over) mit F8 landet im Assemblerfenster

Beitrag von KreuzBlick »

Vielen Dank für den Tipp. Ich werde das dann auch so machen.

Aber, ich trau mich fast nicht, es zu sagen, bei mir sind diese kleinen Symbole nicht vorhanden, und ich hab mir schon einen Wolf gesucht, sie wieder in meine Symbolleiste zu bekommen. :oops:

Sicher fehlt mir nur ein kleiner Hinweis. :idea:
Viele Grüße
Gerold

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: EInen Schritt weiter (Step over) mit F8 landet im Assemblerfenster

Beitrag von six1 »

rechte Maustaste auf Iconbar -> Einstellungen
Image2.jpg
Image2.jpg (58.12 KiB) 2353 mal betrachtet
Gruß, Michael

KreuzBlick
Beiträge: 36
Registriert: Fr 3. Mai 2019, 17:45
OS, Lazarus, FPC: Win8.1 (L 2.2.4 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Saarland

Re: EInen Schritt weiter (Step over) mit F8 landet im Assemblerfenster

Beitrag von KreuzBlick »

Tatsächlich, das Leben kann so "einfach" sein! :D

Du hast mir sehr geholfen. Vielen Dank.
Viele Grüße
Gerold

martin_frb
Beiträge: 571
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: EInen Schritt weiter (Step over) mit F8 landet im Assemblerfenster

Beitrag von martin_frb »

Der Button und die Taste sollten 100% das gleiche tun.

Falls das wirklich nicht der Fall ist, brauche ich mehr Info.

Es gibt ein bekanntes Problem, dass beim "step over" in eine Procedure gesprungen wird (und ggf das Asm Window öffnet).
Tools > Optionen > Debugger. Dort im Property Grid: "FixIncorrectStepOver" aktivieren.
Das sollte helfen.

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: EInen Schritt weiter (Step over) mit F8 landet im Assemblerfenster

Beitrag von six1 »

Danke Martin, kannte ich noch nicht!
Gruß, Michael

KreuzBlick
Beiträge: 36
Registriert: Fr 3. Mai 2019, 17:45
OS, Lazarus, FPC: Win8.1 (L 2.2.4 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Saarland

Re: EInen Schritt weiter (Step over) mit F8 landet im Assemblerfenster

Beitrag von KreuzBlick »

Jetzt kommen wir also zum Kern der Sache.

"FixIncorrectStepOver" aktiviert löst tatsächlich das Problem. Ich habe nochmals getestet: Die Taste F8 und der Mausklick landen beide ohne den Fix an kritischen Stellen im Assemblerfenster. Das scheint mit dem Aufruf von bestimmten Funktionen zusammenzuhängen. Mit Fix läuft es schön durch, allerdings muss ich die Taste F8 an diesen Stellen zweimal drücken.

Jedenfalls: EIn nerviges Problem ist endgültig gelöst. Vielen Dank an alle freundlichen Helfer.
Viele Grüße
Gerold

martin_frb
Beiträge: 571
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: EInen Schritt weiter (Step over) mit F8 landet im Assemblerfenster

Beitrag von martin_frb »

Das doppelte F8 hängt davon ob was genau in der Zeile steht.

Der fix macht ein "step out", das endet hinter der "call 0x....." asm Instruktion. Für procedures kann das die nächste Zeile sein. Für functions nicht immer.

---
Schlechte Nachrichten..... https://bugs.freepascal.org/view.php?id=37658
Stepping in generics kann ebenfalls ins asm Window gehen. Weil die von FPC eingetragene Datei nicht in dem angegebenen Ordner existiert.

Antworten