next up previous
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 ARRAYs 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 RECORDs 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-RECORDs Anhaltspunkte zu liefern, wo ein Feld ein anderes überlagert, schreibt m2debug vor den Namen solcher Felder ein Copyright-Zeichen ($\copyright$). 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!


\begin{warning}
Die Darstellung der Daten kann in wenigen F\uml {a}llen unangene...
...uln problemlos Zeiger auf
{\tt Hardware.Custom} deklarieren.
\par\end{warning}


next up previous
Nächste Seite: Typen ändern Aufwärts: Darstellung der Daten Vorherige Seite: Unstrukturierte Typen
Claudio Nieder 2000-11-12