IEFBR14 - LinkFang.de





IEFBR14


IEFBR14 ist ein Hilfsprogramm, welches in IBM-Großrechnerbetriebssystemen seit OS/360 verwendet wird, wenn mittels JCL Dateioperationen vorgenommen werden sollen. Es handelt sich dabei um ein Programm, welches die Kontrolle sofort wieder an den Aufrufer zurückgibt (RETURN, in Assemblersprache BR 14 für Branch Register), ohne selbst irgendwelche Aktionen zu treffen.

Der Sinn von IEFBR14 ist, den syntaktischen Anforderungen von JCL gerecht zu werden. Jeder Job muss aus mindestens einem Step bestehen und jeder Step muss mindestens ein EXEC-Statement enthalten.

Eine beliebte Anwendung ist, per JCL Dateien zu löschen oder anzulegen:

//LOESCH EXEC PGM=IEFBR14
//DUMMY1   DD DSN=FILE.TO.DELETE,
//            DISP=(MOD,DELETE),
//            SPACE=(TRK,(1,1))
//DUMMY2   DD DSN=EINE.NEUE.DATEI,DISP=(NEW,CATLG),
//            AVGREC=M,SPACE=(100,(10,10))

In der ersten DD-Anweisung weist man JES an, ein Data Set FILE.TO.DELETE anzulegen, falls es noch nicht existiert, und nach dem Aufruf von IEFBR14 gleich wieder zu löschen. In der zweiten DD wird eine neue Datei permanent angelegt.

Das Programm besteht aus zwei Maschineninstruktionen (1. setze ReturnCode 0; 2. springe zurück).

Implementierung

IEFBR14 gilt als Schulbeispiel für die Tatsache, dass selbst scheinbar triviale Programme Fehler enthalten können.[1] Die ersten Auslieferungen des Programms setzten den Rückgabewert nicht auf 0, was Abfragen des Condition Code in Folgesteps behinderte:

IEFBR14 START
        BR 14 ;Return addr in R14 -- branch at it
        END

Dieser Fehler wurde durch Einbauen der Instruktion SR 15,15 behoben (SR steht hierbei für Subtract Registers):

IEFBR14 START
        SR 15,15 ;Zero out register 15
        BR 14    ;Return addr in R14 -- branch at it
        END

Allerdings hatte auch diese Version noch ein Problem, da die END-Anweisung nicht auf den Einsprungspunkt Bezug nahm. Dies wurde mit der dritten Version des Programms behoben:

IEFBR14 START
        SR 15,15    ;Zero out register 15
        BR 14       ;Return addr in R14 -- branch at it
        END IEFBR14

Um die Analyse von Dumps zu vereinfachen, wurden weitere Modifikationen vorgenommen:

 IEFBR14 START
         USING IEFBR14,15 ;Establish addressability
         B  GO            ;Skip over our name
         DC AL1(L'ID)     ;Length of name
 ID      DC C'IEFBR14'    ;Name itself
         DS 0H            ;Force alignment
 GO      SR 15,15         ;Zero out register 15
         BR 14            ;Return addr in R14 -- branch at it
         END IEFBR14

Siehe auch

Einzelnachweise

  1. John Pershing: Safe programming languages. In: The Risks Digest, Volume 6, Issue 14. 25. Januar 1988, abgerufen am 25. Februar 2013 (englisch).

Kategorien: IBM-Software | Systemsoftware

Quelle: Wikipedia - http://de.wikipedia.org/wiki/IEFBR14 (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.