Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Zeichenketten suchen (Spezialfenster FIND)

&pagelevel(5)&pagelevel

Mit der Funktion FIND können Sie Zeichenketten im gesamten Bereich des Diagnoseobjekts suchen lassen. Dabei kann der Suchbereich nach Speicher-Intervall, Ladeeinheiten bzw. Speicherklassen definiert werden.
DAMP unterstützt die Suche mit einem und mit zwei Suchbegriffen. Bei der Suche mit zwei Suchbegriffen muss der Abstand zwischen dem Anfang des ersten und dem Anfang des zweiten Suchbegriffs angegeben werden.

Bezogen auf den ersten Suchbegriff kann der Anwender eine spezielle Speicherausrichtung angeben. Für beide Suchbegriffe werden von DAMP verschiedene Formate von Zeichenketten (Sedezimal-, Character-, String- und Text-Format) und veränderbare Wildcard-Symbole unterstützt. Durch Angabe einer maximalen Anzahl von Treffern kann die Suche eingeschränkt werden.

Voraussetzung für die Ausführung der FIND-Funktion ist ein geöffnetes Diagnoseobjekt. Aufgerufen wird die Suche nach Zeichenketten durch die Anweisung

START-PATTERN-SEARCH WINDOW=<w>

Nach dem Aufruf erscheint zuerst das FIND-Auswahlfenster. Dieses Auswahlfenster dient zur Festlegung des Suchbereichs und der Suchbegriffe. Durch eine entsprechende Eingabe in den Feldern „ASEL“ und „ASID“ kann in jedem von DAMP unterstützten Adressraum gesucht werden (siehe auch "Eingabefelder der Standard-Dumpfenster (W4 - W9 und W21 - W99)").

  • im virtuellen Adressraum (ASEL = TSN | TID),

  • im Datenraum (ASEL = ALT | SPI),

  • im realen Adressraum (ASEL = RM),

  • im absoluten Adressraum (ASEL = ABS),

  • im Processor Saved Status (ASEL = PSS),

  • in der Hardware System Area (ASEL = HSA),

  • in einer Dumpfile-Section (ASEL = SCT).

Dem FIND-Fenster liegen folgende Eingabe-Prinzipien zu Grunde:

  • Alle Eingabedaten bleiben nach Ausführung der FIND-Funktion erhalten und sind für die nächste Funktionsausführung voreingestellt; es kann immer auf der vorherigen Spezifikation aufgesetzt werden.

  • Alle Eingabefelder werden bei der Funktions-Ausführung so interpretiert, wie sie auf dem Bildschirm angezeigt werden.

  • Vor der Funktionsausführung muss nur ein Eingabefeld modifiziert werden. Eine Ausnahme stellt lediglich ein neues FIND-Fenster dar: hier müssen zumindest der Suchbereich und der 1. Suchbegriff definiert werden.

  • Zum Zurücksetzen von Eingaben auf „nicht spezifiziert“ dürfen ausschließlich Leerzeichen verwendet werden. Nil-Zeichen (X'00') dürfen dazu nicht benutzt werden. (Ausnahmen bilden die beiden Suchbegriffe.)

Bild 53: Auswahlmaske für die Suche im virtuellen Adressraum

Bild 54: Auswahlmaske für die Suche in den übrigen Adressbereichen (am Beispiel ASEL=ALT)

Die Ausgabe erfolgt standardmäßig am Bildschirm und in das gleiche Diagnosefenster wie die Eingabe. Der Anwender kann als Ausgabemedium auch eine Datei, *SYSLST oder *EDT angeben (Output Area). Weiter hat er die Möglichkeit, nur die Anzahl der gefundenen Treffer ausgeben zu lassen und die Trefferliste zu unterdrücken („Count only=Y“).

Spezifikation des Suchbereichs

Bei der Auswahl des Suchbereichs im virtuellen Adressraum können ein Speicher-Intervall (Interval), eine oder mehrere Ladeeinheiten (Load Unit) bzw. eine oder mehrere Speicherklassen (Memory Class) angegeben werden. Alle drei Suchbereichs-Spezifikationen sind disjunkt: es muss also immer genau eine Spezifikation gültig sein, Verknüpfungen werden nicht unterstützt.
In den anderen Adressräumen kann nur ein Interval angegeben werden.

Die Auswahl des aktuell gültigen Suchbereichs erfolgt durch DAMP:

  • ist genau ein Suchbereich spezifiziert - explizit spezifiziert oder bei dem vorhergehenden FIND-Aufruf voreingestellt - so wird dieser ausgewählt;

  • sind zwei Suchbereiche spezifiziert, von denen genau einer explizit spezifiziert wurde, so wird dieser ausgewählt;

  • sind mehrere Suchbereiche explizit spezifiziert, wird der Aufruf der Funktion mit Ausgabe einer Meldung zurückgewiesen.

Ein Suchbereich ist genau dann explizit spezifiziert, wenn die Modifikationen sich nicht ausschließlich auf das Überschreiben von Feldern mit Leerzeichen beschränken.
Nach der Auswahl eines Suchbereichs werden alle Werte der anderen Suchbereiche von DAMP implizit zurückgesetzt, ein explizites Zurücksetzen ist nicht erforderlich.

Für den virtuellen Adressraum (ASEL=TSN | TID) wird die Suche in einem ausgewählten Adressraum (ASID=<tsn>|<tid>) sowie in allen im Objekt enthaltenen Adressräumen (ASID=*ALL) unterstützt. Bei ASID=<tsn>|<tid> können Suchbereiche aus dem Benutzer- und Systemspeicher eingegeben werden, bei ASID=*ALL ist nur die Eingabe von Bereichen, die vollständig im Benutzeradressraum liegen, erlaubt.

  • Suchbereich Interval

    Feld Start
    Feld End

    gibt die Startadresse des Suchbereichs an
    gibt die Endadresse des Suchbereichs an

    Der Suchbereich ist nur dann vollständig definiert, wenn sowohl Start- als auch Endadresse spezifiziert sind. Es gibt keine Voreinstellungen.

  • Suchbereich Load Unit
    Dieser Suchbereich spezifiziert die Module von BLS- bzw. DSSM-Ladeeinheiten.

    Die Eingrenzung des Suchbereichs erfolgt hierarchisch in folgenden Ebenen:

    „Scope“ ->   „Subsystem“  ->   „Version“  ->   „Module“.

    Falls „Load Unit“ als Suchbereich eingestellt wird, müssen nicht alle verfügbaren Felder spezifiziert werden. Für jedes Feld wird, falls es nicht spezifiziert ist, eine implizite Annahme getroffen.

    Auswahlleiste Scope
    DISTANCEDISTANCED

    Spezifiziert ein oder mehrere BLS- bzw. DSSM-Ladebereiche

    ALL

    alle Module (aus CP, allen Subsystemen und dem Benutzerprogramm)

    CLASS4alle Module aus dem Systemadressraum, außer CP
    PRIValle Module aus CP und den privilegierten Subsystemen
    NONPRIValle Module aus den nichtprivilegierten Subsystemen und dem Benutzerprogramm
    USERalle Module aus dem Benutzerprogramm

    Falls „Load Unit“ als Suchbereich eingestellt und „Scope“ nicht angegeben wurde, wird implizit „Scope=ALL“ angenommen.Bei NONPRIV bzw. USER hängt das Ergebnis der Suche davon ab, ob die eingestellte Task an die Subsysteme angeschlossen ist bzw. ob die Task ein Programm geladen hat. 

    Feld Subsystem
    DISTANCEDISTANCED

    Spezifiziert ein oder mehrere Subsysteme.

    Subsystemnamen können in einer Länge von bis zu 8 Zeichen eingegeben werden. Zur Angabe von mehreren Subsystemen werden Wildcards unterstützt: das Symbol „*“ ersetzt hierbei beliebig viele Zeichen des Namens, während „/“ genau ein Zeichen ersetzt.
    Falls „Load Unit“ als Suchbereich eingestellt und „Subsystem“ nicht angegeben wurde, wird implizit „Subsystem=*“ (alle Subsysteme aus dem spezifizierten „Scope“) angenommen.

    Feld Version

    Spezifiziert eine oder mehrere Subsystem-Versionen.

    Versionen können in einer Länge von bis zu acht Zeichen eingegeben werden. Zur Angabe von mehreren Versionen werden Wildcards unterstützt (analog zum Feld „Subsystem“).
    Falls „Load Unit“ als Suchbereich eingestellt und „Version“ nicht angegeben wurde, wird implizit „Version=*“ (alle Versionen der spezifizierten Subsysteme) angenommen

    Feld Module

    Spezifiziert ein oder mehrere Module.

    Modulnamen können in einer Länge von bis zu 32 Zeichen eingegeben werden. Zur Angabe von mehreren Modulen werden Wildcards unterstützt (analog zum Feld Subsystem).
    Falls „Load Unit“ als Suchbereich eingestellt und „Module“ nicht angegeben wurde, wird implizit „Module=*“ (alle Module der spezifizierten Subsysteme) angenommen.

  • Suchbereich Memory Class

    Dieser Suchbereich spezifiziert eine oder mehrere Speicherklassen als Suchbereich(e). Die Speicherklassen werden durch Ankreuzen ausgewählt, wobei alle möglichen Kombinationen erlaubt sind. Die Auswahl von Speicherklassen aus dem Benutzeradressraum gilt jeweils nur für die aktuell eingestellte Task.

    Es werden folgende (Sub-)Speicherklassen unterstützt:

    Feld

    gewählter Bereich

    ALL

    CL1
    CL2
    CL3PP
    CL3FP
    CL4PP
    CL4FP
    CL4NP


    Class-1-Memory
    Class-2-Memory
    Class-3-Partial-Pages
    Class-3-Full-Pages
    Class-4-Partial-Pages
    Class-4-Full-Pages
    Class-4-Nonpriv-Pages

    CL5PP
    CL5FP
    CL5MP
    CL6FP
    CL6MP

    Class-5-Partial-Pages
    Class-5-Full-Pages
    Class-5-Memory-Pool
    Class-6-Full-Pages
    Class-6-Memory-Pool

    alle Speicherklassen

    residente Systemmodule
    seitenwechselbare Systemmodule
    residente Teilseiten
    residente Vollseiten
    seitenwechselbare Teilseiten
    seitenwechselbare Vollseiten
    nicht privilegierte Klasse-4-Seiten





    System-
    adress-
    raum

    privilegierte Teilseiten
    privilegierte Vollseiten
    Klasse-5-Memory-Pool
    nicht privilegierte Vollseiten
    Klasse-6-Memory-Pool


    Benutzer-
    adress
    raum

Tabelle 7: Speicherbereiche (Auswahl erfolgt durch Ankreuzen)

Spezifikation der Suchbegriffe

Es ist die Angabe von einem Suchbegriff bzw. von zwei Suchbegriffen möglich. Bei der Angabe von zwei Suchbegriffen muss der Anwender den Abstand zwischen dem Anfang des ersten und dem Anfang des zweiten Suchbegriffs angeben. Die Spezifikation der Suchbegriffe erfolgt über die Felder 1.Search Strg, Offset und 2.Search Strg.

Über das Feld Alignment kann, bezogen auf den ersten Suchbegriff, eine Speicherausrichtung spezifiziert werden. Außerdem kann das Feld Wildcard Symbol vom Anwender verändert werden.

  • Feld 1.Search Strg
    spezifiziert einen (den ersten) Suchbegriff. Dieser Suchbegriff muss immer angegeben sein. Er besteht aus maximal 64 Zeichen, denen ein Byte als Format-Typ vorangestellt ist.

    Es werden folgende Formate unterstützt:

    X
    C

    S
    T

    Sedezimal-Format
    Character-Format

    String-Format
    Textformat
    DISTANCEDISTANC

    erlaubt sind die Zeichen 0..9 und A..F
    Umwandlung der Klein- in Großbuchstaben beim Suchbegriff und anschließender Vergleich
    ohne Umwandlung
    Umwandlung der Groß- in Kleinbuchstaben, sowohl beim Suchbegriff als auch beim Suchbereichsinhalt, und anschließender Vergleich

    Voreingestellt ist das Format C.

    Beim Suchbegriff werden Wildcards unterstützt. Das Wildcard-Symbol entspricht dem unter „Wildcard Symbol“ definierten Zeichen. Es kann an beliebiger Stelle des Suchbegriffs verwendet werden und ersetzt jeweils genau ein Zeichen im Suchbegriff.

  • Feld Offset
    spezifiziert den Abstand zwischen dem Anfang des „1.Search Strg“ und dem Anfang des „2.Search Strg“. Der „Offset“ wird als Sedezimalwert angegeben. Um den Offset auf „nicht spezifiziert“ zu setzen, muss das Eingabefeld mit Leerzeichen überschrieben werden.

  • Feld 2.Search Strg
    spezifiziert den zweiten Suchbegriff. Der „2.Search Strg“ ist analog zum „1.Search Strg“ definiert. Er wird nur dann für die Suche berücksichtigt, wenn ein „Offset“ angegeben ist.

  • Feld Wildcard Symbol
    spezifiziert ein Zeichen, das im „1.Search Strg“ und im „2.Search Strg“ als Wildcard-Symbol verwendet werden darf. Das Wildcard-Symbol ist mit „*“ voreingestellt und kann vom Anwender verändert werden. Erlaubt sind alle Zeichen außer Ziffern, Buchstaben und Leerzeichen.

  • Feld Alignment
    spezifiziert eine Speicherausrichtung, bezogen auf den „1.Search Strg“.

    Es werden folgende Ausrichtungs-Typen unterstützt:

    B
    H
    W
    D
    P

    Bytegrenze
    Halbwortgrenze
    Wortgrenze
    Doppelwortgrenze
    Seitengrenze

    Voreingestellt ist das Format H. 

    Seitengrenze (P) bedeutet in der Regel, dass die Suche auf 4-KB-Grenze ausgerichtet wird. Die einzige Ausnahme stellt die Suche in Objekten dar, die als PAM-Dateien geöffnet wurden. In diesem Falle wird auf 2-KB-Grenze gesucht.

Spezifikation der Ausgabe bei der FIND-Funktion

Über das Feld „Output Area“ wird das Ausgabemedium festgelegt. Standardmäßig erfolgt die Ausgabe am Bildschirm und in das gleiche Diagnosefenster wie die Eingabe. Über das Feld „Number of Hits“ wird die maximale Anzahl der Treffer für einen Suchlauf eingestellt und „Count only“ legt fest, ob die Trefferliste ausgegeben werden soll oder nur die Anzahl der Treffer. Das Format der Ausgabe ist über das „Modus-Feld“ in der Kopfzeile wählbar.

  • Feld Output Area
    spezifiziert das Ausgabemedium.

    Es werden folgende Ausgabemedien unterstützt:

    *SYSOUT
    <filename>
    *SYSLST
    *EDT

    Bildschirm, gleiches Diagnosefenster wie bei der Eingabe
    Datei
    Systemdatei *SYSLST
    EDT-Fenster, das zuletzt verwendet wurde, bzw. EDT-Fenster 0

    Voreingestellt ist *SYSOUT.

  • Feld Number of Hits
    spezifiziert die maximale Anzahl der Treffer, nach denen die Suche unterbrochen und die gefundenen Treffer ausgegeben werden sollen. Die Treffer werden als Dezimalwert eingegeben. Die maximale Anzahl von ausgegebenen Treffern ist eingeschränkt durch die Größe des Ausgabefensters.

  • Feld Count only
    spezifiziert, ob die Trefferliste ausgegeben werden soll oder nur die Anzahl der Treffer.

    Es werden folgende Angaben unterstützt:

    N
    Y

    Trefferliste
    nur Anzahl gefundener Treffer

    Voreingestellt ist Count only=N, d.h. die Ausgabe der Trefferliste.

  • Feld Modus in der Kopfzeile

    Es werden folgende Ausgabeformate unterstützt:

    D(MP)
    C(HR)
    H(EX)

    normales Dump-Format
    Zeichen-Format
    Sedezimal-Format

    Voreingestellt ist das Format D(MP).

Das Ausgabeformat kann im Auswahl- und im Ausgabefenster eingegeben werden.

Ausgabefenster der FIND-Funktion

Nach dem Starten der FIND-Funktion mit Output Area = *SYSOUT (dies ist Voreinstellung) werden im gleichen Diagnosefenster die Treffer ausgegeben. Wurde ein Suchbegriff angegeben, wird für jeden Treffer eine Zeile ausgegeben; wurden zwei Suchbegriffe angegeben, so belegt ein Treffer zwei Zeilen, wobei in der jeweils zweiten Zeile der „Offset“ der Ausgabe vorangestellt ist.

Bild 55: FIND-Ausgabefenster (bei der Suche mit zwei Suchbegriffen)

Die Suche wird unterbrochen, wenn das Fenster gemäß der aktuellen Fensterlänge ganz mit Trefferzeilen gefüllt ist oder die im Eingabefeld „Number of Hits“ eingegebene maximale Anzahl von Treffern erreicht ist. Sie kann dann mit +/ fortgesetzt oder mit - / abgebrochen werden.

Zudem kann durch  mit anschließendem /INFORM-PROGRAM MSG='*CANCEL' ein Abbruch der Stringsuche erzwungen werden. Es werden dann die bisher gefundenen Treffer angezeigt.

Umfasst der Suchbereich Seiten, die nicht im Diagnoseobjekt enthalten sind, so wird dies durch Meldungen angezeigt, die Suche wird aber nicht abgebrochen.

Die Adresse des gefundenen Suchmusters kann in jeder Trefferzeile markiert und der Speicherbereich in einem Dumpfenster ausgegeben werden, siehe Abschnitt „Markieren" (Diagnosefenster verändern).

In den Ausgabemodi D und HEX sind im Ausgabebereich die einzelnen Wörter markierbar und können als Anfangsadressen den einzelnen Dumpfenstern zugeordnet werden.