breakpoint;
//!
Plaziert einen Breakpoint in die gegenwärtige Codezeile (alternativ zur SED-Breakpoint-Taste [F9]). Erreicht die Ausführung diese Stelle im Code, friert die Anwendung ein und der Debugger wird aktiviert. Nun kann man in Einzelschritten durch den Code gehen. Die gegenwärtige Skriptzeile wird sowohl in SED als auch in der Engine-Titelleiste (lite-C) oder dem Enigne-Fenster (C-Skript) angezeigt. Durch Drücken von
[F10] wird die Anweisung ausgeführt und die nächste Anweisung erscheint.Durch weiteres Betätigen von
[F10] wird die Funktion Zeile für Zeile ausgeführt und die Ergebnisse der Ausdrücke lassen sich untersuchen. Mit [Strg-F10] wird der Debugger abgeschaltet und eine normale Funktionsausführung geht solange weiter bis ein anderer oder derselbe Breakpoint wieder erreicht wird.
[Shift-F10] geht über Funktionsaufrufe hinweg (nur lite-C). Mit
[Esc] wird der Debugger für den Rest des Spiels deaktiviert und alle weiteren Breakpoints ignoriert. Bemerkungen:
- Zum Debuggen muß die Engine mit der Kommandozeilenoption -debug gestartet werden, andernfalls werden Breakpoints ignoriert.
- Die Zeile muß Code enthalten. Breakpoints können nicht in leere Zeilen oder solche, die Kommentare oder Variablendefinitionen enthalten, gesetzt werden.
- Breakpoints können nicht direkt in Shader, Events oder Partikelfunktionen
eingesetzt werden. Eventfunktionen können dennoch debugbar gemacht werden, indem ein wait(1) vor
den ersten Breakpoint plaziert wird.
- Breakpoints werden im Runtime-Modul und in Legacy-Modusprogrammen (mit einer WinMain() Funktion) ignoriert. Das Kommentar-Tag //! kann nur in der Hauptdatei gesetzt werden, nicht in einer Include-Datei. [F9]-Breakpoints hingegen lassen sich in SED auch in Include-Dateien setzen.
- Material-Event- oder Partikelfunktionen laufen während des Debuggens nicht. wait()-Anweisungen werden beim schrittweisen Durchgehen ignoriert.
- Wenn Sie einen Breakpoint in einen Entity-Event-Funktion oder an den Beginn
einer Entity-Aktion vor das erste wait setzen, werden andere
Entities nicht upgedatet und können daher vorübergehend an falschen
Stellen auftauchen.
- Um das Debuggen einer bestimmten Funktion zu unterbinden, setzen Sie debug_mode
= 0; an ihrem Beginn.
- Variablen und Objekte lassen sich durch das Definieren von watches
in SED untersuchen. Um Variablen im Engine-Fenster zu überprüfen,definieren Sie ein PANEL mit Ziffern.
- Iim lite-C-Tuorial ist das Debuggen detailliert beschrieben.
temp = my.pan;
temp = vector.x;
Beispiel (lite-C):
Bedingte Breakpoints können durch Angabe einer If -Bedingung
definiert werden, wie etwa
// breakpoint only if [B] is pressed
if (key_b)
beep(); //!
Siehe auch:
beep, diag, watched, debugging, debug_external, debug_mode, wait
► Aktuelle Version Online