Nächste Seite: Typen ändern Aufwärts: Darstellung der Daten Vorherige Seite: Unstrukturierte Typen

### Strukturierte Typen

Bei den strukturierten Typen kann der Debugger nicht auf einmal den ganzen Wert der Variablen darstellen. Deshalb zeigt der Debugger oft nur die Grösse oder die Anfangsadresse. Er bietet aber eine komfortable Möglichkeit in die Struktur der Variablen vorzustossen.

Immer wenn der Debugger noch mehr Informationen zu einer Variablen hat, schreibt er in einer Spalte hinter dem Variablennamen ein Sternchen. Dies bedeutet, dass man mit der Maus die Variable anklicken kann. Der Debugger zoomt dann in die Struktur hinein. Nach diesem Prinzip ist es möglich, auch komplizierteste Datenstrukturen einfach durchzublättern.

Auch hier folgt wieder eine Liste aller möglichen Typen und eine Aufzählung ihrer Besonderheiten:

ARRAY
  Bei den `ARRAY`s wird als Wert die Grösse in Byte angegeben. Statt der Grösse kann auch das Wort ,,`(dyn)``` stehen, wenn die Variable ein Prozedurparameter ist, der als `ARRAY OF ...` deklariert wurde. Bei Feldern schreibt `m2debug` -- wie in der Einleitung erklärt -- ein Sternchen (*) hinter den Variablennamen. So wissen Sie, dass Sie die Variable anklicken können; sie erhalten dann eine Liste aller `ARRAY`-Elemente.

RECORD
  Bei den `RECORD`s wird als Wert die Grösse in Byte angegeben. Auch hier erscheint ein Sternchen (*) hinter dem Variablennamen, damit Sie nach einem Anklicken der Variablen eine Liste aller `RECORD`-Felder bekommen. In ist es möglich, verschiedene Felder in einem `RECORD` an die gleiche Adresse zu legen, um Speicherplatz für Varianten zu sparen. Im folgenden Beispiel sind die Felder ,,`anzahlTasten``` und ,,`fellFarbe``` am gleichen Ort im Speicher:

      TYPE
       Farbe = (grau, weiss, schwarz, braun);
       MausInfo = RECORD
         CASE computerMaus: BOOLEAN OF
         | TRUE:  anzahlTasten: INTEGER
         | FALSE: fellFarbe: Farbe
         END
       END;

  Um Ihnen auch bei den Varianten-`RECORD`s Anhaltspunkte zu liefern, wo ein Feld ein anderes überlagert, schreibt `m2debug` vor den Namen solcher Felder ein Copyright-Zeichen (). Das ,,c`` des Copyright-Zeichens soll an das Wort `CASE` erinnern.

SET
  Bei einem `SET` wird der Wert hexadezimal ausgegeben. Da das aufzählen aller gesetzten `SET`-Elemente mehr Platz als eine Zeile benötigt, erscheint auch hier ein Sternchen (*). Sie können sich die einzelnen Elemente im `SET` anzeigen lassen, indem Sie die Variable anklicken. Das gleiche gilt auch für die vordefinierten Typen `BITSET`, `SHORTSET` und `LONGSET`.

POINTER
  Der Wert einer Variablen vom Typ `POINTER` oder `BPOINTER` ist eine Adresse im Speicher, auf welche die Variable zeigt. Diese Adresse wird hexadezimal ausgegeben, oder `m2debug` schreibt im Fall von 0 `NIL`. Durch Anklicken der Variablen -- sie ist demnach mit einem Sternchen (*) gekennzeichnet -- können Sie weiter in die Datenstruktur vorstossen.

  Anders ist dies bei Variablen eines opaken Typs. In diesem Fall schreibt der Debugger anstelle eines Wertes das Wort ,,`(opaque)``` und Sie können die Variable nicht anklicken. Weiter ist auch bei allen Variablen der Typen `ADDRESS` und `BPTR` das Anklicken nicht möglich. `m2debug` bietet Ihnen aber die Möglichkeit, den Typ zu ändern (siehe Abschnitt 2.7.5 ,,Typen ändern``)

PROC
  Sowohl bei Variablen eines selbstdeklarierten `PROCEDURE`-Typs als auch beim Typ `PROC` zeigt Ihnen unser Debugger als Wert die Anfangsadresse der Prozedur in hexadezimaler Form. Ein Anklicken ist nicht möglich!

Nächste Seite: Typen ändern Aufwärts: Darstellung der Daten Vorherige Seite: Unstrukturierte Typen