[Logo der Universität Bayreuth]
Universität Bayreuth

Mathematisches
Institut



 Einleitung

 Erste Schritte

 Mail und News

 Drucken

 KDE

 LaTeX/TeX

 Linksammlung

 Linuxtools

 Netzwerk

 Programmieren

 Windows

 X Window

 Anträge

 Kontakt

Fehlersuche mit dem Data Display Debugger (DDD) <-




          <-  Start des ddd

<-  Beschreibung des ddd-Fensters

<-  Laden einer Core-Datei

<-  Start eines Programms im DDD

<-  Ausgabe vom Programmcode

<-  Haltepunkt (Breakpoint)

<-  schrittweiser Ablauf des Executables

<-  Verfolgung der Aufrufkette

<-  Untersuchung von Variablen
  1. Anspringen des Definitionsortes einer Variablen
  2. Ausgabe des Datentyps einer Variablen
  3. Ausgabe des Inhalts einer Variablen eines Standarddatentyps
  4. Ausgabe des Inhalts einer Zeigervariablen
  5. Ausgabe des Inhalts einer Strukturvariablen
  6. Ausgabe des Inhalts eines Arrays
  7. Konvertierung des Wertes einer Variablen

<-  dynamische Veränderung des Wertes einer Variablen

<-  Beenden des ddd







Untersuchung von Variablen

Bei der Fehlersuche kann man auch den Datentyp und den Wert von Variablen ausgeben lassen und beobachten, wie sich die Werte im Lauf des Programmes verhalten.

Anspringen des Definitionsortes einer Variablen

Sie können für jede Variable nachschauen, wo diese definiert wurde, indem Sie den Mauszeiger auf die gewählte Variable bewegen und auf das Icon "Lookup" klicken oder im Kontextmenü (öffnet sich durch die rechte Maustaste) den Punkt " Lookup <Variablenname>  " anwählen. Zusätzlich wird der Definitionsort auch in der Konsole angezeigt (siehe Bild 1).

.
Beispiel 3 (bsp3.cpp) Das kompakte DDD-Fenster
Bild 1



top top

Ausgabe des Datentyps einer Variablen



Sie können sich den Datentyp von allen Variablen im Kontextmenü (öffnet sich durch rechte Maustaste, siehe Bild1) unter " What is <Variablenname> " in der Konsole anzeigen lassen.

Beispiel 4 (bsp4.cpp) DDD-Konsole
Bild 2



top top

Ausgabe des Inhalts einer Variablen eines Standarddatentyps



Unter einem Standarddatentyp werden die einfachen (skalaren) Datentypen von C/C++ verstanden.
Um den Wert solcher Variablen zu erfahren, brauchen Sie nur den Mauszeiger zur gewählten Variablen bewegen und einen Augenblick warten. Sofort erscheint ein kleines Hilfefenster, in dem der zugehöriger Wert angezeigt wird. Diese Information wird gleichzeitig in der Statuszeile ausgegeben.
Sie können auch den Wert in der Konsole ausgeben lassen oder im Datenfenster verfolgen, in dem sie im Kontextmenü (öffnet sich durch rechte Maustaste) " Print <Variablenname>  " bzw." display <Variablenname> " anwählen (siehe Bild 1).
Sie können auch die Werte aller lokal definierten Variablen und aller Parameter einer Funktion anzeigen lassen. Es genügt die Anwahl des Menüpunktes " Data | Display Local Variables " bzw. " Data |Display Arguments ". Im Datenfenster werden Sie dann über die aktuellen Werte informiert.

Beispiel 4 (bsp4.cpp) DDD-Datenfenster
Bild 3



top top

Ausgabe des Inhalts einer Zeigervariablen



Die im Zeiger gespeicherte Adresse (also seinen Wert) können Sie ausgeben lassen (siehe Bild5) und beobachten (siehe Bild4), in dem Sie den Mauszeiger zur ausgewählten Zeigervariablen im Quelltext bewegen und im Kontextmenü (öffnet sich durch rechte Maustaste) den Menüpunkt " Print <Zeigervariablenname> " bzw. " Display <Zeigervariablenname> " auswählen (siehe Bild1).
Um den referenzierten Wert eines Zeigers im Datenfenster zu verfolgen (siehe Bild4) oder in der Konsole zu sehen (siehe Bild5), wählen Sie im Kontextmenü (öffnet sich durch rechte Maustaste) den Menüpunkt " Print *<Variablenname> " bzw. " Display *<Variablenname> ".
Wenn Sie bereits im Datenfenster die im Zeiger gespeicherte Adresse ausgegeben haben, können Sie auch direkt im Kontextmenü (öffnet sich durch rechte Maustaste) den Menüpunkt "Display* ()" auswählen, um den referenzierten Wert des Zeigers zu bekommen (siehe Bild4).

Beispiel 4 (bsp4.cpp) DDD-Datenfenster
Bild 4

DDD-Konsole
Bild 5



top top

Ausgabe vom Inhalt einer Strukturvariablen


Den Wert einer Strukturvariable können Sie sich auch ausgeben lassen bzw. verfolgen, indem Sie im Kontextmenü (öffnet sich durch rechte Maustaste) den Menüpunkt " Print <Variablenname> " bzw. " display <Variablenname> " auswählen (siehe Bild1). Sie können dann den Wert dieser Variable im Datenfenster verfolgen (Bild6) oder in der Konsole (Bild7) ausgeben lassen.

Beispiel 4 (bsp4.cpp) DDD-Datenfenster
Bild 6
Erklärung Sie können jedes Mal, wenn Sie drei Punkte "..." sehen in der Anzeige, dort einen Doppelklick auslösen oder auf "Show" in der Werkzeugleiste klicken. Dann werden die in der Anzeige noch versteckten Daten angezeigt.

DDD-Konsole
Bild 7



top top

Ausgabe des Inhalts eines Arrays



  • statische Arrays

    Die Werte (also die Komponenten) eines statischen Arrays können Sie genauso wie Variablen eines Standarddatentyps ansehen/ausgeben. Da die Dimension(en) eines statischen Arrays schon zur Compilierzeit feststehen, werden bei der Anzeige/Ausgabe der Arrayvariablen gleich alle Komponenten angezeigt. Das gilt auch für mehrdimensionale Arrays.
    Beispiel 4 (bsp4.cpp) DDD-Datenfenster
    Bild 8


    Sie können mit der gleichen Methode die Werte eines statischen Arrays von Strukturen ansehen.

    Beispiel 4 (bsp4.cpp) DDD-Datenfenster
    Bild 9
    Erklärung Das geht auch genauso wie ein statisches Array mit Komponenten eines Standarddatentyps. Sie können jedes Mal, wenn Sie drei Punkte "..." sehen in der Anzeige, dort einen Doppelklick auslösen oder auf "Show" in der Werkzeugleiste klicken. Dann werden die in der Anzeige noch versteckten Daten angezeigt.


    top top

  • dynamische Arrays

    Die Anzeige von dynamischen Arrays ist dagegen nicht ganz so einfach. Diese können Sie nur zeilenweise ansehen, weil sie auch zeilenweise angelegt wurden. Sie erhalten ein kleines Fenster, wenn Sie auf die Schaltfläche Display der Werkzeugleiste klicken und einen Moment warten. In diesem Fenster (Bild10) geben Sie das @-Zeichen und die Anzahl der auszugebenden Spalten (der aktuellen Zeile des dynamischen Arrays) hinter die Angabe der Arraykomponente (hier: "tabelle[0][0]") Um dieses Fenster (Bild10) zu erhalten, können Sie auch im Kontextmenü (öffnet sich durch rechte Maustaste) von Datenfenster New Display wählen (siehe Bild11). Damit können Sie jede Zeile Ihres dynamischen Arrays betrachten oder Werteänderungen darin verfolgen. Eine Anzeige als zweidimensionales Feld ist bei dynamischen Arrays der Dimension 2 prinzipiell nicht möglich.
    Beispiel 3 (bsp3.cpp) DDD-News Displaysfenster
    Bild 10


    Beispiel 3 (bsp3.cpp) DDD-Datenfenster
    Bild 11

    top top

        Dynamische Arrays von Strukturen können Sie auch genau so anschauen.


    Beispiel 4 (bsp4.cpp) DDD-Datenfenster
    Bild 12
    Erklärung Das geht auch vergleichbar zu einem dynamischem Array mit Komponenten von einem Standarddatentyp. Für dieses Beispiel geben Sie für das erste Kästschen Morgan[0][0]@2 ein. Sie können jedes Mal, wenn Sie drei Punkte "..." sehen in der Anzeige, dort einen Doppelklick auslösen oder auf "Show" in der Werkzeugleiste klicken. Dann werden die in der Anzeige noch versteckten Daten angezeigt.



top top

Konvertierung des Wertes einer Variablen

Sie können den Wert einer Variablen, die Sie im Datenfenster anzeigen haben lassen, vom DDD immer in eine binäre, hexadezimale, dezimale oder oktale Darstellug konvertieren lassen. Dazu wählen Sie im Kontextmenü (öffnet sich durch rechte Maustaste) vom Datenfenster den Menüpunkt " New Display | Convert to <Dartellungsname> " (siehe Bild13). Bemerkenswert ist, dass zunächst dieses Kontextmenü nicht alle möglichen Darstellungen anbietet. Beispielweise gibt es keine Umwandelung in ein Zeichen (Datentyp char). Sie können fehlende Darstellungsmöglichkeiten selbst einfügen, indem Sie im Kontextmenü (öffnet sich durch rechte Maustaste) den Menüpunkt " New Diplay | Edit Menu " anwählen (siehe Bild13) und einige oder alle folgenden Konvertierungen
  • "/c () // Convert to Char" für Character
  • "/f () // Convert to Float" für Float
  • "/a () // Convert to Adress" für Adresse
  • "/s () // Convert to String" für String
im neu erscheinenden Fenster (DDD: Shortcut Editor) hinzufügen. Für weitere Infos können Sie im Konsole den Befehl "help x" eingeben.

Beispiel 4 (bsp4.cpp) Das kompakte DDD-Fenster
Bild 13



top top

Robert Baier ([e-mail-Adresse von Robert Baier])
© 2003 Robert Baier;
© 1999-2002 Robert Baier, Sascha Herrmann
Debugger-Seiten: © 2003 Robert Baier, Ekue-sse Situ Tomety
[Seitenzähler] Last modified: 22.07.2015