Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03409.jsonl.gz/1250

Der Debugger nun ist ein Werkzeug, der diese Art von Fehler lokalisieren kann. Er kann die Stelle anzeigen, wo der Fehler aufgetaucht ist, und was fast wichtiger ist, er zeigt auch die Umgebung, in welcher der Fehler aufgetaucht ist. Meist läuft nämlich eine programmierte Prozedur in 95 Prozent aller Fälle korrekt, und nur unter ganz bestimmten Bedingungen läuft etwas schief. Diese Bedingungen sind aber dynamisch, das heisst sehr von der momentanen Umgebung beziehungsweise vom Zeitpunkt abhängig, in der die Prozedur aufgerufen wird.
Unser Debugger ist vom Typ her ein post-mortem Debugger. Dies bedeutet, dass er erst nach dem ,,Tod``, nach dem Absturz des Programms, aufgerufen wird. Man kann mit ihm also nicht direkt während des Ablaufs des Programms alle Variablen anschauen oder sogar verändern: dies wäre die Aufgabe eines Runtime-Debuggers.
Unser Debugger zeigt die Fehlerstelle aber direkt im Programmtext an. Der Benutzer braucht sich also nicht mit der Maschinensprache des Prozessors oder mit dessen Registern herumzuplagen. Die Adresse der Fehlerstelle wird nicht direkt als Adresse im Hauptspeicher ausgegeben, sondern in einem ersten Schritt auf das Modul eingeschränkt und dann auf die Prozedur und genaue Anweisung verfeinert.
Ausserdem muss man sich mit dem Amiga Modula-2 Debugger bei der Programmierung eigener Programme nicht um den Debugger kümmern. Jedes Programm kann von den Fehlern befreit werden, ohne dass spezielle Break-Points gesetzt, oder gar Code-Änderungen gemacht werden.