Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Hinweise zum symbolischen Testen von geschachtelten Programmen

  • Setzen von Testpunkten

    • Paragrafen und Kapitel des inneren Programms, in dem die Unterbrechungsstelle liegt, können ohne Qualifikation angesprochen werden.

    • Auf Kapitel und Paragrafen in einem anderen Programm, das auch in einer anderen Übersetzungseinheit liegen kann, wird mit der S- und PROC-Qualifikation zugegriffen:

      %INSERT [S=program-id.]PROC=program-id-innen.paragraph [IN kapitel]

    • Die S-Qualifikation muss immer dann angegeben werden, wenn der Testpunkt in einem anderen getrennt übersetzten Programm gesetzt werden soll.

    • Ein Testpunkt am Beginn der Procedure Division des äußersten Programms kann mit einer PROG-Qualifikation gesetzt werden:

      %INSERT PROG=program-id.program-id

      oder ausgeschrieben

      %INSERT S=program-id.PROC=program-id.program-id

      Dieses Vorgehen ist nur dann sinnvoll, wenn program-id nicht länger als 8 Zeichen ist oder ein LLM generiert wurde, da sonst der Source-Name, nicht aber der Procedure-Name auf 8 Zeichen abgeschnitten wird.

    • Ein Testpunkt auf den Anfang eines inneren Programms kann, da S und PROC verschieden sind, nicht mit einer PROG-Qualifikation gesetzt werden, sondern muss wie folgt angegeben werden:

      %INSERT [S=program-id.]PROC=program-id-innen.program-id-innen

    • Namen in der aktuellen Übersetzungseinheit, die dort eindeutig sind, können auch ohne Qualifizierung angesprochen werden.

  • Zugriff auf Daten

    • Mit %D werden die Daten des aktuellen geschachtelten Programms gefunden sowie Daten mit dem GLOBAL-Attribut, die nicht lokal verdeckt sind; d.h. es kann auf die gleichen Daten zugegriffen werden, auf die auch das Programm selbst an dieser Stelle zugreifen kann.

    • Mit %SD kann man die Daten aller dynamisch umgebenden Programme erhalten, entsprechend der aktuellen Aufrufhierarchie.

    • Mit der S- und PROC-Qualifikation kann man gezielt auf ein Datum eines anderen Programms zugreifen:

      %D PROC=program-id-innen.datenfeld

      Dies ist auch mit %SD ohne Qualifikation möglich, sofern das Datum in einem rufenden Programm liegt.

  • Sowohl beim Zugriff auf Testpunkte als auch auf Daten gilt, dass die PROC-Qualifikation entsprechend der Programmverschachtelung mehrfach wiederholt werden kann.

  • Das %TRACE-Kommando protokolliert alle durchlaufenen Anweisungen der aktuellen CSECT; d.h. auch Anweisungen der gerufenen inneren Programme werden protokolliert, nicht aber die Anweisungen in getrennt übersetzten Programmen.

  • Sofern beim Trace die Anweisungstypen angezeigt werden, meldet AID, wegen intern generierter Paragrafen, gelegentlich zusätzliche LABEL-Angaben.