Der DATA Step Debugger

Aus SAS-Wiki
Wechseln zu: Navigation, Suche

Von Grischa Pfister aus: Carina Ortseifen, Grischa Pfister, Heribert Ramroth, Marianne Weires: Tipps und Tricks für den leichteren Umgang mit der SAS Software, KSFE 2009

Wenn ein Datenschritt (Data Step) nicht das tut, was er soll, greifen Generationen von SAS-Anwendern auf PUT-Anweisungen zurück, um den logischen oder datenseitigen Fehler zu finden. Das hat allerdings den Nachteil, dass der Original-Code des Programms verändert werden muss. Dabei gibt es seit langem eine eingebaute Alternative, den Data Step Debugger. Dieser wird durch die Option „/ DEBUG“ im Data Statement zugeschaltet und bietet eine Vielzahl an Möglichkeiten, um den Programmfluss verfolgen und Variablen überwachen zu können.

Wird ein Data Step im Debug-Modus abgeschickt, werden zwei zusätzliche Fenster geöffnet. Das eine zeigt den Code des Data Steps an und markiert die jeweils aktive (noch nicht ausgeführte) Zeile, das andere zeigt das LOG des Debuggers und enthält eine Kommandozeile, in die die Debugger-Anweisungen geschrieben werden. Mit jedem Druck auf die Enter-Taste wird der Data Step zeilenweise abgearbeitet.

Durch verschiedene BREAK-Anweisungen können Haltepunkte gesetzt werden, im einfachsten Falle in einer konkreten Zeile des Data Steps. Für Do-Loops gibt es die Möglichkeit, nach dem n-ten Schleifendurchlauf anzuhalten, der Haltepunkt kann aber auch an eine Bedingung geknüpft werden. Das GO Kommando sorgt dafür, dass der Data Step bis zum nächsten Haltepunkt abgearbeitet wird. Alternativ kann für Variablen eine Überwachung eingeschaltet werden. Wenn sich der Wert einer mit der WATCH-Anweisung markierten Variable ändert, werden alter und neuer Wert im Debugger-LOG ausgegeben und die Verarbeitung des Data Step unterbrochen. Haltepunkte und Überwachungen werden mit DELETE wieder gelöscht. Die EXAMINE-Anweisung gibt den aktuellen Wert einer Variable in das LOG aus, DESCRIBE zeigt die Variablen-Attribute an. Mit der SET-Anweisung können Variablen-Werte gesetzt werden, allerdings können hier keine SAS-Funktionen verwendet werden – der einzige Nachteil bei der Verwendung des Data Step Debuggers. Mit JUMP kann in eine beliebige Zeile des Programms gesprungen werden, z.B. um eine DO-Schleife nochmals zu durchlaufen, das Quit-Kommando beendet den Debugger. Es gibt noch weitere Kommandos, die hier nicht vorgestellt werden, sondern der Online-Hilfe bzw. der gedruckten SAS-Dokumentation entnommen werden können.

Syntax

DATA tabelle1 / DEBUG;
 ...
RUN;

Weblinks

Literatur

  • SAS 9.1.3 Language Reference: Dictionary, Fifth Edition, S. 1793 ff.