Manchmal möchte man sich auch Variable ansehen, die im Programm an der
aktuellen Stelle nicht sichtbar sind, etwa weil sie lokal bzgl. einer
anderen Routine sind oder weil sie von lokalen Variablen überschrieben
werden. In diesem Fall muß man Variablennamen mit dem Gültigkeitsbereich
(''Scope'') versehen. Die Syntax unterscheidet sich hier für Fortran und C,
da sich auch die entsprechenden ''Scope''-Regeln sehr unterscheiden.
Eine Fortran-Variable kann man allgemein ansprechen in der Form
ROUTINEN-NAME`VARIABLEN-NAME
Befindet sich die Programm-Ausführung etwa in der Routine getvec in Zeile
21, so erhält man mit ''print i'' den Wert der lokalen Variablen i, bei der
ersten Iteration also 1. Dagegen liefert ''print getmat`i'' den Wert 101,
nämlich den Wert von i in getmat nach Beenden der Schleife.
In C lautet die allgemeine Syntax
FILE-NAME`ROUTINEN-NAME`[BLOCK-LISTE`]VARIABLEN-NAME ,
weil der Gültigkeitsbereich einer Variablen hier auch ein File oder aber
nur einen Block umfaßen kann. Die Block-Liste ist nur nötig, falls man
innerhalb von Blöcken, die kleiner sind als der Rumpf einer Routine,
lokale Variable deklariert. Näheres dazu mit ''help scope''.
Statt globale Namen für verdeckte Variable zu benutzen, kann man auch den
Zustand des Stacks verändern, um aus der Tiefe der aufgerufenen Routinen
wieder zurückzugehen. Als Beispiel nehmen wir an, daß sich das Programm
linalg gerade in der Routine LUBKSB befinde, die von LUINV aufgerufen
wurde, diese wiederum von LINALG. Im Menü ''ProcessWindows'' des
Source-Fensters kann man durch Auswahl von ''create Stack'' ein Stack-Fenster
öffnen, in dem die Hierarchie der aufgerufenen Routinen dargestellt wird.
Nach Anklicken der gewünschten Routine erscheint ein Fenster, in dem die
Werte aller Argumente und lokalen Variablen des entsprechenden Frames
dargestellt sind. Wer ohne eine X-Umgebung arbeitet, kann sich die
entsprechenden Informationen über Kommandos besorgen. Näheres dazu unter
den Stichworten ''backtrace'' und ''frame'' des Online-Helps.
Peter Junglas 18.10.1993