Mathias hat geschrieben: So 5. Apr 2026, 14:26
Ich suche Fehler vielmals mit einem Writeln und einer Konsole.
dito
klar versuche ich auch immer mal wieder, per Breakpoint den Fehler zu finden. Aber bei Schleifen, die zig- bis hunderte Male durchlaufen werden ist das nicht spassig.
umgehen, vor allem wen man es bewusst fix drinnen lässt.
ZB, für Fehlerausgabe bei OpenGL-Shader.
Es ist keine Krankheit, sondern einfach für eine Plattform typisch. Genau deswegen gibt es auch Logger wie den LazLogger die mit den Unterschieden umgehen können. Und es ist ein Unterschied ob ich ein reines FPC Konsolenprogramme Debugge oder eine GUI Anwendung.
Jeder hat da so seine Vorlieben und Techniken. Nur das ich die Fehlerbehandlung mit $I- ausschalte ist für mich nicht unbedingt das erste Mittel der Wahl. Aber wie gesagt, jeder hat seine Techniken.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Haltepunkte, damit ich Werte von Variablen etc. mir im "Watches/Locals" anschaue ist zur Zeit nicht ausreichend (in fpdebug, aber ich glaube gdb ist da nicht viel besser).
Ja, lokale Variablen gehen, aber sobald es an Properties von Objekten geht u.ä, wirds mangelhaft.
Da benutze ich nach wie vor das gut gediente "Memo1.Append('Meine Variable='+Variable.ToString);"
Ich benutze Haltepunkte eigentlich nur, um die Stelle zu finden, wo es knallt.
Und dann leg ich mir meistens alle 2-3 Zeilen einen Haltepunkt, und baller mit F9 von einem Haltepunkt zum nächsten.
Es nervt mich unheimlich, wenn ich bei einem Haltepunkt ankomme, und dann singlesteps mache, dass Lazarus bei manchen Code-Zeilen aus mir unerfindlichen Gründen in das Assembler-Fenster abbiegt, und ab diesem Moment sind "Watches" und "Locals" unbrauchbar
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.