
Bearbeitung von Feldern
Feldwerte zur Laufzeit anzeigen
Im Debugger können Sie den Inhalt von Programmfeldern im Anzeigemodus Felder anzeigen. Sie können bis zu acht Felder in die Anzeige aufnehmen. Dieser Modus ist der Standardanzeigemodus des Debuggers. Unterstützt werden folgende Datenobjekte:
- Einzelfelder
- Strukturierte Felder
- Strings
- Internen Tabellen
- Objekte
Bei komplexeren Datenobjekten wie zum Beispiel Referenzen oder Tabellen erfolgt eine Inhaltsanzeige nicht unmittelbar im Standardanzeigemodus, vielmehr ist in der Rubrik Feldnamen ein Doppelklick mit der linken Maustaste nötig, um in die entsprechende
Attributanzeige zu gelangen.
Vorgehensweise
Wählen Sie die Drucktaste Felder von einem beliebigen anderen Anzeigemodus aus.
Geben Sie die Feldnamen entweder direkt in die Eingabefelder ein oder wählen Sie diese durch Doppelklick aus dem Quelltext aus. Das System trägt die Namen der Felder daraufhin automatisch in die Rubrik Feldnamen ein.
Aktivieren Sie eine der Ausführungsarten, um das Programmcoding zu analysieren. Siehe auch
Durchlaufen des Quelltextes
Beispiel:

Weitere Felder anzeigen
Da immer nur vier Felder angezeigt werden, können Sie mit den Blättertasten zu den aktuell nicht angezeigten Feldern gelangen.
Systemfelder anzeigen
In diesem Anzeigemodus können Sie auch den Inhalt von beliebigen Systemfeldern anzeigen. Die drei wichtigsten Systemfelder SY-SUBRC, SY-TABIX und SY-DBCNT werden immer angezeigt.
Felder externer Programme anzeigen
Sie können auch den Inhalt von Feldern externer Programme anzeigen, sofern Sie den Namen des externen Programms kennen. Geben Sie den dazu den Programmnamen in Klammern vor dem Feldnamen an, also: feldnamen(programmname).
Sonderformen der Feldanzeige
Ähnlich wie im Programmquelltext können zeichenartige Felder mit Offset- und Längenangabe versehen werden. Wird zum Beispiel in der Rubrik Feldnamen
sy-datum+4(2
) eingegeben, dann wird unter
Feldinhalte genau der aktuelle Monat des Systemdatums angezeigt.
Wird nach dem Namen einer internen Tabellen eine Ganzzahl in eckigen Klammern angegeben, dann wird der Inhalt derjenigen Zeile ausgegeben, welcher der Ganzzahl entspricht. Die Angabe
itab[4]
zeigt zum Beispiel die vierte Zeile der internen Tabelle
itab
an. Überschreitet die Ganzzahl die Anzahl der aktuellen Tabellenzeilen, dann wird die Tabelle als unbekannt gekennzeichnet.
Bei Datenreferenzen wird der Inhalt des referenzierten Datenobjektes angezeigt, wenn ein Pfeil und Stern an den Namen der Referenz angehängt werden. Die Schreibweise
r->*
stellt den Inhalt desjenigen Feldes zur Verfügung, das von der Datenreferenz
r
gerade referenziert wird.
Wird im Standardanzeigemodus unter Feldinhalte ein Doppelklick auf eine Daten- oder Objektreferenz abgesetzt, dann werden bei Datenreferenzen im Folgebild alle Attribute und Feldinhalte des referenzierten Datenobjektes aufgeblendet. Bei Objektreferenzen werden die Attribute und Werte der aktuellen Instanz aller referenzierten Klassen und Interfaces ausgegeben. Zum Beispiel liefert die Angabe
7<cl>
alle Werte der siebten Instanz aus der Klasse
cl
.
Die Header von Strings, internen Tabellen sowie Daten- und Objektreferenzen werden durch Voranstellen eines Stern angezeigt. Beispielsweise wird der Header der internen Tabelle
itab
in hexadezimaler Form angezeigt, wenn in der Rubrik
Feldnamen
*itab
eingegeben wird. Bei Tabellen ohne Header enthält der Feldinhalt nur Nullen.
Durch Voranstellen eines Ampersand wird die jeweilige Referenz von Strings, internen Tabellen sowie Daten- oder Objektreferenzen wiederum in hexadezimaler Form dargestellt. Die Angabe
&s
tr liefert zum Beispiel die Referenz auf den String mit Namen
str
.
Anzeigeformat ändern
Die Feldinhalte können in aufbereiteter Form oder im Hexadezimalformat angezeigt werden.
Durch Anklicken dieser Taste aktivieren Sie das Hexadezimalformat für die Werteanzeige des Feldes.
Um den Feldinhalt wieder im ursprünglichen Ausgabeformat anzuzeigen, klicken Sie auf diese Taste.
Löschen aller Feldnamen
Mit der Auswahl dieser Taste werden sämtliche Feldnamen aus der Felder-Anzeige gelöscht.
Feldwerte zur Laufzeit ändern
Sie können den Inhalt bestimmter Felder zur Laufzeit ändern, um den Programmablauf zu beeinflussen. Wird bei der Fehleranalyse zum Beispiel einen falscher Feldwert entdeckt, dann können Sie diesen zur Laufzeit durch einen anderen Wert ersetzen und so feststellen, ob das Programm nun korrekt abläuft.
Sie können die Werte folgender Datenobjekte Ihres Programmes ändern, wobei Formatfehler durch eine Systemmeldung angezeigt werden:
- Einzelfelder
- Strukturierte Felder
- Strings
- Felder von internen Tabellen
- Felder von Klassen und Interfaces
Vorgehensweise
So gehen Sie vor, um den Inhalt eines Einzelfeldes zu ersetzen:
- Wählen Sie die Taste Felder, um in den Felder-Anzeigemodus zu verzweigen.
- Wählen Sie ein Feld mit Doppelklick aus, um es in die Felder-Anzeige zu überstellen oder geben Sie dessen Namen ein. Das Feld wird mit dem aktuellen Wert angezeigt.
- Geben Sie den neuen Wert in der Anzeige der Feldinhalte ein.
- Klicken Sie auf die Ikone Feldinhalte ändern, die durch einen Bleistift am Ende der Feldanzeige repräsentiert wird.

Bei bestimmten Datenobjekten wie Strukturen oder internen Tabellen müssen Sie erst einen Doppelklick auf den entsprechenden Feldnamen machen, um in das Bildsegment der
Attribute zu gelangen. Hier ist nochmals ein Doppelklick auf die einzelnen Felder erforderlich, um den Änderungsmodus aufzurufen.
Ergebnis
Der Debugger schreibt den neuen Wert in das Programmfeld und das System zeichnet die Änderung im Systemprotokoll auf. Wenn Sie den Bleistift nicht betätigen, werden die eingegebenen Werte nicht übernommen.

Der Debugger akzeptiert die Werte genau so, wie Sie diese eingeben. Daher müssen Sie stets auf das korrekte Format achten, insbesonders Groß- oder Kleinschreibung bei zeichenartigen Feldern oder linksbündige Angabe bei hexadezimalen Zahlen.