Die Standard-Dumpfenster haben in der Kopfzeile die Eingabefelder „Symbolische Adresse“, „Relativadresse“, „Absolutadresse“, „ASEL“, „ASID“, „Ausgabeformat“ und „Fensterlänge“.
In den Spezialfenstern, die mit der Anweisung SHOW-EDITED-INFORMATION
aktiviert werden, sowie in den Fenstern FIND, LIST, OPTS oder im PRODAMP-Fenster sind weitere oder andersartige Eingaben möglich (siehe ab "System-Trace-Table ausgeben (Spezialfenster TRACE)").
Bild 26: Eingabefelder in der Kopfzeile der Standard-Dumpfenster
Symbolische Adresse
Im Eingabefeld „Symbolische Adresse“ (siehe Bild 26) können Modulnamen, Kontrollblock-Namen und auch Kontrollblock-Feldnamen eingegeben werden.
Angezeigt wird bei der Ausgabe standardmäßig der Modul-Name. Kann der Speicherbereich keinem Modul zugeordnet werden, werden Leerzeichen angezeigt.
Wird ein Kontrollblock-(Feld)-Name angezeigt (Ausgabeformat CBA/CBM), dann kann der Modulname sichtbar gemacht werden durch Eingabe von „NAM“ in das Feld „Ausgabeformat“.
Es können auch Namen von CSECTs aus Subsystemen oder aus einem evtl. geladenen Benutzerprogramm angegeben werden. Sofern die aktuelle Task an das nichtprivilegierte Subsystem angeschlossen bzw. die CSECT in dem Benutzerprogramm enthalten ist, wird der Speicherbereich automatisch lokalisiert. Bei geladenen privilegierten Subsystemen lokalisiert DAMP auch dann, wenn die Task nicht angeschlossen ist.
Wird die modulrelative Darstellung nicht gewünscht, kann sie durch Eingabe von „ALT“ in das Feld „ASEL“ abgeschaltet werden. DAMP relativiert dann alle Adressen zur aktuellen Anfangsadresse in diesem Fenster. In diesem Format wird die Ausgabe zudem über die Modulgrenze hinweg fortgesetzt.
Zur Kennzeichnung, dass die modulrelative Darstellung abgeschaltet wurde, wird der Modulname gelöscht.
Diese Darstellung bleibt beim Blättern und bei Eingabe einer Relativadresse oder Absolutadresse erhalten.
Relativadresse
Angezeigt wird die momentane Distanz zwischen Modulanfang und „Absolutadresse“. Bei Veränderung der Relativadresse innerhalb eines CSECT/Kontrollblock-Bereiches ändern sich nur Relativadresse und Anfangsadresse des Fensterinhaltes („Absolutadresse“). Überschreitet diese Distanz jedoch den Modulbereich, werden die relativen und absoluten Adressausgaben automatisch angepasst. Das Gleiche passiert beim Blättern im Dumpfenster.
Absolutadresse
Angezeigt wird die Anfangsadresse des momentanen Fensterinhaltes.
Ausgabeformat
Es stehen die folgenden Ausgabeformate zur Verfügung:
D | Dump-Format (Defaultwert bzw. nach Eingabe von „D“). |
ASC | Dump-Format(ASCII); Pro Bildschirmzeile werden 16 Bytes sedezimal und abdruckbar in ASCII-Form ausgegeben. Die 4 Wortfelder im sedezimalen Format sind markierbar. |
HEX | Hexadezimal-Format (nach Eingabe von „H“). |
CHR | Zeichen-Format (nach Eingabe von „C“). |
ASS | Befehlsdarstellung (nach Eingabe von „A“). |
CAS | Eingabe: die /390-Disassemblierung soll verwendet werden (als Ausgabe erscheint dann ASS). |
XAS | Eingabe: die x86-Disassemblierung soll verwendet werden. |
CBA | Symbolische Ausgabe mit automatischem Lokalisieren des Kontrollblocks (Control-Block-Automatic). |
CBM | Symbolische Ausgabe mit manuellem Lokalisieren des Kontrollblocks (Control-Block-Manual). |
NAM | Symbolische Ausgabe, wobei im Feld Symbol an Stelle des Kontrollblock-Namens der Name des Moduls angezeigt wird, in dem der Kontrollblock liegt. |
Fensterlänge
Angezeigt wird die aktuelle Fensterlänge einschließlich der Kopfzeile. Die durch Benutzeroption veranlasste Trennzeile wird bei der Ausgabe im Feld „Fensterlänge“ nicht mitgezählt. Eingabewerte > 19 werden auf die Maximallänge 19 gekürzt.
Mit den Programmtasten
bis (Terminal 9750) lässt sich der Cursor auf die Eingabefelder „Fensterlänge“ der folgenden Diagnosefenster positionieren:positioniert auf „Fensterlänge“ des ersten Diagnosefensters auf dem Bildschirm, | |
positioniert auf „Fensterlänge“ des zweiten Diagnosefensters auf dem Bildschirm, | |
positioniert auf „Fensterlänge“ des dritten Diagnosefensters auf dem Bildschirm |
sofern mindestens drei Fenster am Bildschirm gezeigt werden.
Werden nur zwei Fenster angezeigt, positioniert
, bei nur einem angezeigten Fenster positioniert auch auf die Kommandozeile.ASEL und ASID
Die in den Standard-Dumpfenstern gezeigten Speicherbereiche können Ausschnitte aus folgenden Bereichen sein:
eines virtuellen Adressraums
des Hauptspeichers (reale/absolute Adressierung)
der Hardware-System-Area (HSA)
eines gesicherten Prozessorstatus (PSS)
aus Datenräumen
aus Dumpfile-Sections (SCT)
Die Datenräume existieren neben den task- und systemspezifischen virtuellen Adressräumen und stellen quasi eine Vervielfältigung der virtuellen Adressräume dar.
Bei DAMP kann auch ein task- oder systemspezifischer Adressraum als Datenraum eingestellt werden. In diesem Fall verzichtet DAMP auf eine modulspezifische Relativierung.
Adressierung der Datenräume
Zusätzlich zu den 16 Mehrzweckregistern hat jeder Prozess noch weitere 16 Access-Register. Abhängig von der Stellung eines Schalters (AR-Mode) werden diese Access-Register (bis auf Register 0) zusätzlich zur Adressierung von Speicherbereichen herangezogen.
Das zum Basisregister gleichnamige Access-Register wird, wenn sein Inhalt ungleich null ist, zur Adressierung eines Datenraums verwendet. Innerhalb dieses Datenraums, der bis zu 2 GByte groß sein kann, wird wie üblich wieder mit Basisregister, Indexregister und Distanz adressiert.
Für die Adressierung erhalten die Access-Register einen sog. ALET (Access-List-Entry-Token), der für einen Adressraum (Task- oder Systemadressraum) den Datenraum eindeutig bestimmt. Systemweit wird der Datenraum durch die sog. SPID (Space-Identification) eindeutig bestimmt.
Die Namen ASEL (Address-Space-Selector) und ASID (Address-Space-Identifier) bezeichnen Felder, die folgende Symbole aufnehmen können:
ASEL | ASID | Bedeutung der Symbole |
TID | <tid> | Der Adressraum ist ein Benutzeradressraum und wird durch die <tid> spezifiziert. |
TSN | <tsn> | Der Adressraum ist ein Benutzeradressraum und wird durch die <tsn> spezifiziert. |
SYS | wird ignoriert | Der Adressraum ist der Systemadressraum. |
ALT | <alet>-<tid> | Der Adressraum ist ein Datenraum, der durch <alet> (plus <tid> bei Benutzer-Datenräumen) spezifiziert wird. |
SPI | <space-id> | Der Adressraum ist ein Datenraum, der durch die (systemweite) <space-id> spezifiziert wird. |
RM | <segm> | Der Adressraum ist der reale Hauptspeicher im ausgewählten Objekt. <segm> bezeichnet das 4GB-Segment (0, 1, ...), in dem die Adresse liegt. |
ABS | <segm> | Der Adressraum ist der absolute Hauptspeicher im ausgewählten Objekt. <segm> bezeichnet das 4GB-Segment (0, 1, ...), in dem die Adresse liegt. (Nur bei VM2000-Gesamtsled) |
PSS | <prozessor> | Der Adressraum ist der Processor-Saved-Status des angegebenen Prozessors. |
HSA | wird ignoriert | Der Adressraum ist die Hardware-System-Area. |
SCT | <section-name> | Der Adressraum ist eine Dumpfile-Section, die durch <section-name> spezifiziert wird. |
Die Felder „ASEL“ und „ASID“ sind überschreibbar und hellgesteuert.
Bei Angabe von ALET plus TID muss Letztere mit einem Bindestrich an ALET angefügt werden. Soll ein task- oder systemspezifischer Adressraum als Datenraum eingestellt werden, braucht lediglich „ALT“ als „ASEL“ (plus <tid> als „ASID“) eingegeben werden.
Standardmäßig wird für Bereiche aus dem Benutzeradressraum die TID im Feld „ASID“ angezeigt. Will der Anwender die TSN zur Anzeige bringen, muss er „TSN“ in das Feld „ASEL“ eintragen.
Bei Ausgabe von Bereichen des Systemadressraums wird das Feld „ASEL“ auf SYS umgeschaltet. Die dem Fenster noch zugewiesene TID wird weiterhin im Feld ASID angezeigt. Diese TID kann wie bisher durch Eingabe von „TID“ im Feld „ASEL“ und <tid> im Feld „ASID“ verändert werden.
In einem VM2000-Gesamtsled kann mit der Eingabe von „ABS“ - beginnend beim Hypervisor - absolut adressiert werden, unabhängig davon, ob eine VM ausgewählt wurde. Mit der Eingabe „RM“ wird innerhalb einer ausgewählten VM adressiert.
Abkürzen der Eingaben
Alle Eingaben in das Feld „ASEL“ dürfen soweit abgekürzt werden, dass sie eindeutig bleiben.
Die TID darf bei der Eingabe in das Feld „ASID“ generell abgekürzt werden, soweit die bezeichnete Task hiermit eindeutig bestimmt ist. In der Regel sind die letzten vier Stellen der TID ausreichend. Ausgegeben wird stets die vollständige TID.
Beispiele für Eingaben in die Felder „symbolische Adresse“ und „Ausgabeformat“
Im Folgenden sollen anhand unterschiedlicher Eingabekombinationen in die Felder „symbolische Adresse“ und „Ausgabeformat“ einige wichtige Anwendungen beschrieben werden. Die Eingaben in das Feld „Ausgabeformat“ sind bis auf Eindeutigkeit abkürzbar.
Lokalisieren eines automatisch auffindbaren Kontrollblocks (z.B. EXVT)
Eingabe:
Kontrollblockname im Feld „symbolische Adresse“
Ausgabe:
Kontrollblockname im Feld „symbolische Adresse“
CBA im Feld „Ausgabeformat“Lokalisieren eines manuell auffindbaren Kontrollblocks
Annahme:
Eingabe:
Kontrollblockname im Feld „symbolische Adresse“
Ausgabe:
Kontrollblockname im Feld „symbolische Adresse“
CBM im Feld „Ausgabeformat“Lokalisieren eines Feldes im aktuell angezeigten Kontrollblock
Annahme:
Eingabe:
Feldname im Feld „symbolische Adresse“
Ausgabe:
Kontrollblockname im Feld „symbolische Adresse“
CBM oder CBA im Feld „Ausgabeformat“Lokalisieren eines Feldes in einem „automatischen“ Kontrollblock
Eingabe:
Feldname im Feld „symbolische Adresse“
Ausgabe:
Kontrollblockname im Feld „symbolische Adresse“
CBA im Feld „Ausgabeformat“Manuelles Lokalisieren eines „automatischen“ Kontrollblocks
Annahme:
Eingabe:
Kontrollblockname im Feld „symbolische Adresse“
CBM im Feld „Ausgabeformat“ oder Eingabe im Feld „Absolutadresse“Ausgabe:
Kontrollblockname im Feld „symbolische Adresse“
CBM im Feld „Ausgabeformat“Überlagerung eines Bereichs mit einem Kontrollblock ab Feldnamen
Annahme:
Eingabe:
Feldname im Feld „symbolische Adresse“
CBM im Feld „Ausgabeformat“Ausgabe:
Kontrollblockname im Feld „symbolische Adresse“
CBM im Feld „Ausgabeformat“Überlagerung eines Bereichs mit einem Kontrollblock ab Relativadresse
Annahme:
Eingabe:
Kontrollblockname im Feld „symbolische Adresse“
Relativadresse (rel. zum Kontrollblockanfang)Ausgabe:
Kontrollblockname im Feld „symbolische Adresse“
CBM im Feld „Ausgabeformat“Anzeigen des Moduls, in dem ein Kontrollblock liegt
Eingabe:
NAM im Feld „Ausgabeformat“
Ausgabe:
Modulname im Feld „symbolische Adresse“
NAM im Feld „Ausgabeformat“Umschalten von symbolischer Darstellung auf Dumpformat
Eingabe:
D im Feld „Ausgabeformat“
Ausgabe:
Modulname im Feld „symbolische Adresse“
D im Feld „Ausgabeformat“Anzeige eines Bereichs in einem Modul
Eingabe:
Modulname (eventl. plus Relativadresse) im Feld „symbolische Adresse“
Ausgabe:
Modulname im Feld „symbolische Adresse“
Anzeige im Feld „Ausgabeformat“ bleibt; CBA, CBM oder NAM werden zu DUmschalten vom Dumpformat auf disassembliertes Format
Eingabe:
ASS im Feld „Ausgabeformat“
Ausgabe:
Modulname im Feld „symbolische Adresse“
ASS im Feld „Ausgabeformat“