cflow(1) cflow(1)
NAME
cflow - C-Flußdiagramm erstellen
SYNTAX
cflow [-r] [-i x] [-i ] [-d num] [cc-Optionen] [--] Datei...
BESCHREIBUNG
Das Kommando cflow analysiert eine Sammlung von yacc, lex, Assembler-,
C- und Objektdateien und erstellt eine grafische Darstellung auf
Grundlage der externen Verweise. Dateien mit dem Zusatz lex und dem
C-Übersetzungssystem bearbeitet. Das Ergebnis der vorübersetzten
Dateien und die Dateien mit dem Zusatz .i werden dann mit dem ersten
Durchgang von lint bearbeitet. Die Dateien mit dem Zusatz .s werden
assembliert. Die Symboltabellen der assemblierten Dateien und der
Dateien mit nachgestelltem .o werden gelesen. Die Ergebnisse werden
gesammelt und in eine grafische Darstellung externer Verweise umgewan-
delt, die in die Standardausgabe geschrieben wird.
In jeder Ausgabezeile stehen nacheinander eine Zeilennummer, der Name
des globalen Symbols, ein Doppelpunkt und die Definition des Typs. Je
nach Schachtelungstiefe der Referenz wird der Name um die entsprechen-
den Tabulatorpositionen eingerückt. Normalerweise werden nur Funkti-
onsnamen aufgelistet, die nicht mit einem Unterstrichsymbol beginnen
(siehe -i). Bei Informationen aus dem C-Quellcode besteht die Defini-
tion aus einer Typbezeichnung, dem durch spitze Klammern begrenzten
Namen der Quelldatei und der Nummer der Zeile, in der die Definition
gefunden wurde. Definitionen aus Objektdateien zeigen den Dateinamen
und den Positionszähler an, unter dem das Symbol (z. B. Text) erschie-
nen ist. Führende Unterstriche in externen Namen werden gelöscht. Wenn
die Definition eines Namens bereits ausgegeben ist, enthalten alle
nachfolgenden Verweise auf diesen Namen nur noch die Bezugsnummer der
Zeile, in der die Definition zu finden ist. Bei undefinierten Verwei-
sen wird nur <> ausgegeben.
OPTIONEN
Außer den Optionen -D, -I und -U, die wie bei cc bzw. c89 interpre-
tiert werden, werden auch die folgenden Optionen von cflow interpre-
tiert.
-r die Beziehung "Aufrufer:Aufgerufener" umkehren, wodurch eine
umgekehrte Auflistung mit den Aufrufern jeder Funktion angezeigt
wird. Die Liste wird in der lexikografischen Reihenfolge der Auf-
gerufenen sortiert.
-i x externe und statische Datensymbole einschließen. Standardmäßig
werden nur Funktionen in das Diagramm aufgenommen.
-i Namen einschließen, die mit einem Unterstrich beginnen. Standard-
mäßig werden diese Funktionen (und Daten bei Verwendung von -i x)
nicht eingeschlossen.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
cflow(1) cflow(1)
-d num
num zeigt die maximale Verschachtelungstiefe für das Diagramm an.
Standardmäßig ist diese Zahl sehr groß. Versuche, die Verschach-
telungstiefe auf eine negative ganze Zahl zu setzen, werden igno-
riert.
-- Ende der Optionenliste. Die Angabe ist nötig, wenn der erste
Dateiname mit - beginnt.
BEISPIELE
Gegeben sei folgende Datei file.c:
int i;
main()
{
f();
g();
f();
}
f()
{
i = h();
}
Hieraus erzeugt das Kommando
cflow -i x file.c
die Ausgabe:
1 main: int(), <file.c 4>
2 f: int(), <file.c 11>
3 h: <>
4 i: int, <file.c 1>
5 g: <>
Wenn die Verschachtelungstiefe zu kompliziert wird, kann die Ausgabe
von cflow über eine Pipe (mit der Option -e) an das Kommando pr
geschickt werden, um die Tabulatorexpandierung auf weniger als acht
Leerstellen zu setzen.
ENDESTATUS
cflow meldet mehrfache Definitionen. Nur die erste wird anerkannt.
HINWEISE
Durch lex und yacc erstellte Dateien bewirken die Umordnung von
Zeilennummer-Deklarationen, was die Bearbeitung durch cflow stören
kann. Um richtige Ergebnisse zu erhalten, müssen Sie cflow mit der
Eingabe von yacc oder lex versorgen.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
cflow(1) cflow(1)
INTERNATIONALE UMGEBUNG
Die Sprache der Meldungstexte wird durch die Umgebungsvariablen
LCALL, LCMESSAGES oder LANG bestimmt.
In der Standardeinstellung verhält sich das System so, als wäre es
nicht internationalisiert, d. h. die Meldungstexte erscheinen in eng-
lischer Sprache. Wenn Sie die Sprache der Meldungstexte ändern wollen,
müssen Sie eine dieser Variablen entsprechend setzen.
Ausführliche Informationen zu den Abhängigkeiten der Umgebungsvaria-
blen und zur Internationalisierung im allgemeinen finden Sie im Hand-
buch "Leitfaden für Programmierer: Internationalisierung - Lokalisie-
rung". Zur Einstellung der Benutzerumgebung siehe auch environ(5).
SIEHE AUCH
cc(1), c89(1), lex(1), lint(1), nm(1), pr(1), yacc(1).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98