Universität Bayreuth Mathematisches Institut Erste Schritte Mail und News KDE LaTeX/TeX Linksammlung Linuxtools Netzwerk Programmieren Windows X Window Anträge Kontakt |
Fehlersuche mit dem Data Display Debugger (DDD)
Haltepunkt (Breakpoint)Es gibt verschiedene Typen von Haltepunkten (Breakpoints). Hier werden wir drei Typen kennenlernen: Breakpoints, Breakpoint mit Bedingug, temporäre Breakpoints und Watchpoints.BreakpointFür die Festlegung von Haltepunkten (Breakpoint) gibt es mehrere Möglichkeiten. Am einfachsten erfolgt es durch einen Doppelklick am Anfang der Codezeilen. Zur Kennzeichnung des Haltepunktes erscheint das Icon mit dem Stoppschild. Alternativ gibt es den Punkt "Set Breakpoint" aus dem Kontextmenü (öffnet sich durch Klick auf die rechte Maustaste)(siehe Bild4), das Stopp-Symbol aus der Werkzeugleiste oder den Menüpunkt "Source | breakpoints" für komplexere Vorgaben. Sie haben auch die Möglichkeit, das gdb-Kommando "break" in der Debugger-Konsole einzugeben.Wenn Sie einen Breakpoint nicht mehr brauchen, können Sie diesen löschen oder deaktivieren . Das können Sie im Kontextmenü (öffnet sich durch Click auf die rechte Maustaste) machen: "Delete Breakpoint" oder "Disable Breakpoint" (siehe Bild2).
Breakpoint mit BedingungSie können auch eine Bedingung für den Breakpoint setzen und/oder den Breakpoint eine bestimmte Anzahl n1 von Durchläufen (des Breakpoints) ignorieren. Das erfolgt durch die Wahl vom "Properties" im Kontextmenü (öffnet sich durch Click auf die rechte Maustaste). Sie erhalten dann ein Fenster (siehe Bild3 ). Die Bedingung geben Sie im Texteingabefeld "Condition" ein (beispielsweise wird der Breakpoint nur aktiv, wenn die Bedingung n<0 zutrifft, d.h. der Wert von n zu diesem Zeitpunkt kleiner als 0 ist). Durch Eingabe einer Zahl n1 im Texteingabefeld "Ignore Count" wird der Breakpoint wärend der nächsten n1 Durchläufe (des Breakpoints) ignoriert.
temporärer BreakpointEin temporärer Breakpoint ist ein Breakpoint, der nur ein einziges Mal wirkt. Dieser Breakpoint wird dann automatisch vom Debgger nach seiner ersten Wirkung gelöscht. Dieser Breakpoint kann auch mit Bedingung eingesetzt werden (siehe Breakpoint mit Bedingung). Einen temporären Breakpoint setzten Sie durch das Kontextmenü des Quelltextfensters (öffnet sich durch Click auf die rechte Maustaste) und Auswahl von "Set Temporary Breakpoint" (siehe Bild4).
WatchpointWatchpoints beziehen sich auf Variablen und brechen das Programm jedes Mal ab, wenn der Wert dieser Variable sich ändert. Dabei wird der neue und der alte Wert ausgegeben. Um so einen Watchpoint zu setzen, bewegen Sie den Mauszeiger auf den Variablenname im Quelltextfenster und klicken Sie auf "Watch" in der Werkzeugleiste.
Es gibt aber noch zwei andere Watchpoints, deren Eigenschaften genauer festgelegt sind.Es sind der Read Watchpoint und der Access Watchpoint. Der Read Watchpoint stoppt das Programm nach jeder Anweisung und gibt den Wert der Variable aus, solange der Wert einer Variablen gelesen ist. Um ein Read Watchpoint zu setzen bewegen Sie den Mauszeiger auf den Variablenname im Quelltextfenster, Klicken sie auf "Watch" in der Werkzeugleiste und warten Sie eine kurze Zeit. Gleich erscheint einen Menümit "Set Watchpoint on ()", "Set Access Watchpoint on ()" und "Set Read Watchpoint on ()". Da wählen Sie "Set Read Watchpoint on ()" (siehe Bild6). Der Access Watchpoint stoppt das Programm nach jeder Anweisung, solange der Wert einer Variablen gelesen ist oder die Variable definiert bleibt. Um ein Access Watchpoint zu setzen bewegen Sie den Mauszeiger auf den Variablenname im Quelltextfenster, Klicken sie auf "Watch" in der Werkzeugleiste und warten Sie eine kurze Zeit. Gleich erscheint einen Menümit "Set Watchpoint on ()", "Set Access Watchpoint on ()" und "Set Read Watchpoint on ()". Da wählen Sie "Set Access Watchpoint on ()" (siehe Bild6).
Information über eingesetzte HaltepunkteUm einen Überblick über alle Haltepunkte zu bekommen, die Sie eingesetzt haben, wählen Sie das Menü " Data | Watchpoints". Sie erhalten dann ein Fenster ("Bild7") mit einem Überblick über alle Haltepunkte.
|