Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ cscope(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

curses(3X)

terminfo(4)

cscope(1)                                                         cscope(1)

NAME
     cscope - C-Programme interaktiv untersuchen

SYNTAX
     cscope [Option...] Datei...

BESCHREIBUNG
     cscope ist ein interaktives, bildschirmorientiertes Programm, mit dem
     sich Benutzer einen C-Quelltext ansehen können.

     Standardmäßig untersucht cscope C-, lex- und yacc-Quellprogramme im
     aktuellen Verzeichnis. cscope kann auch für Quelldateien, die in der
     Kommandozeile angegeben sind, aufgerufen werden. In jedem Fall durch-
     sucht cscope die Standardverzeichnisse nach #include-Dateien, die es
     im aktuellen Verzeichnis nicht findet. cscope verwendet eine Querver-
     weistabelle der Symbole, standardmäßig cscope.out, um Funktionen,
     Funktionsaufrufe, Makros, Variablen und Symbole des C-Präprozessors in
     den Dateien aufzufinden.

     cscope baut die Querverweistabelle für die Symbole auf, wenn es das
     erste Mal mit den Quelldateien des untersuchten Programms benutzt
     wird. Bei späteren Aufrufen wird die Querverweistabelle nur dann neu
     aufgebaut, wenn eine der Quelldateien geändert wurde oder die Liste
     der Quelldateien unterschiedlich ist. In diesem Fall werden die Daten
     der unveränderten Dateien aus der alten Querverweistabelle kopiert,
     wodurch der Neuaufbau der Querverweistabelle wesentlich schneller als
     der erstmalige Aufbau wird.

OPTIONEN
     -b   Es werden nur die Querverweise aufgebaut.

     -C   Beim Suchen wird Groß- und Kleinschreibung nicht berücksichtigt.

     -c   In der Querverweistabelle werden nur ASCII-Zeichen verwendet,
          d. h. die Daten werden nicht komprimiert.

     -d   Die Querverweistabelle wird nicht aktualisiert.

     -e   Der Kommandoprompt zwischen den Dateien wird unterdrückt.

     -f Verweisdatei
          Anstatt cscope.out wird Verweisdatei als Dateiname für die Quer-
          verweistabelle benutzt.

     -I Incverz
          Vor der Suche in INCDIR, dem Verzeichnis für Include-Dateien
          (normalerweise /usr/include), soll in Incverz nach #include-
          Dateien gesucht werden, deren Name nicht mit / beginnt und die
          nicht auf der Kommandozeile oder in Namensdatei (s. u.) angegeben
          wurden. Die #include-Dateien können entweder in doppelten Hoch-
          kommata oder in spitzen Klammern angegeben werden. Das Verzeich-
          nis Incverz wird zusätzlich zum aktuellen Verzeichnis und den



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

cscope(1)                                                         cscope(1)

          Standardverzeichnissen durchsucht. Wird die Option -I mehrmals
          angegeben, werden die Verzeichnisse in der auf der Kommandozeile
          angegebenen Reihenfolge durchsucht.

     -i Namensdatei
          Statt der in der Standarddatei (cscope.files) aufgelisteten
          Dateien werden alle Quelldateien untersucht, deren Namen in
          Namensdatei aufgelistet sind. Dateinamen sind durch Leerzeichen,
          Tabulatoren oder Zeilenendezeichen getrennt. Wird diese Option
          angegeben, ignoriert cscope alle auf der Kommandozeile angegebe-
          nen Dateien.

     -L   Die Datei wird einmal mit zeilenorientierter Ausgabe durchsucht,
          wenn diese Option zusammen mit -Num Muster verwendet wird.

     -l   Zeilenorientierte Schnittstelle (siehe Abschnitt "Zeilenorien-
          tierte Schnittstelle").

     -Num Muster
          Zum Eingabefeld Num gehen und Muster finden. Es wird von 0 an
          gezählt.

     -P Pfad
          erstellt eine Querverweisdatei, in der jedem relativen Dateinamen
          Pfad vorangestellt wird. Dadurch ersparen Sie sich einen Wechsel
          in das Verzeichnis, in dem die Querverweisdatei erstellt wurde.
          Diese Option ist nur zusammen mit der Option -d zulässig.

     -p n Anstatt des Standards (1) werden die letzten n Pfadkomponenten
          angezeigt. Verwenden Sie 0, um gar keine Dateinamen anzuzeigen.

     -s Verz
          sucht in Verz nach weiteren Quelldateien. Diese Option wird igno-
          riert, wenn auf der Kommandozeile Quelldateien angegeben werden.

     -T   Zum Vergleich mit C-Symbolen werden nur die ersten acht Zeichen
          verwendet. Ein regulärer Ausdruck, der andere Sonderzeichen als
          Punkte enthält, paßt auf kein Symbol, wenn er bei minimaler Länge
          weniger als acht Zeichen enthält.

     -U   Die Zeitstempel der Dateien sollen nicht überprüft werden. Es
          wird davon ausgegangen, daß die Dateien nicht verändert wurden.

     -u   Die Querverweisdatei wird auf jeden Fall aufgebaut. Es wird davon
          ausgegangen, daß alle Dateien verändert wurden.

     -V   Auf der ersten Zeile des Bildschirms wird die Versionsnummer von
          cscope ausgegeben.

     Die Optionen -I, -p und -T können auch in der Datei cscope.files ste-
     hen.



Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

cscope(1)                                                         cscope(1)

   Eingabe des ersten Suchbefehls

     Nachdem die Querverweistabelle erzeugt wurde, zeigt cscope das fol-
     gende Menü an:

        Find this C symbol:
        Find this global definition:
        Find functions called by this function:
        Find functions calling this function:
        Find this text string:
        Change this text string:
        Find this egrep pattern:
        Find this file:
        Find files #including this file:

     Drücken Sie die Taste TAB so lange, bis das gewünschte Eingabefeld
     erreicht ist, geben Sie den gesuchten Text ein, und drücken Sie die
     Taste RETURN.

   Eingabe weiterer Befehle

     Wenn die Suche erfolgreich war, können Sie folgende Tastenkombinatio-
     nen verwenden

     1-9       Zeile mit eingegebener Nummer editieren
     SPACE     die nächsten gefundenen Zeilen ausgeben
     +         die nächsten gefundenen Zeilen ausgeben
     ^v        die nächsten gefundenen Zeilen ausgeben
     -         die vorherigen gefundenen Zeilen ausgeben
     ^e        alle ausgegebenen Dateien der Reihe nach editieren
     >         Zeilenliste an eine Datei anhängen
     |         alle angezeigten Zeilen an ein Shell-Kommando übergeben

     Mit folgenden Tastenkombinationen können Sie das cscope-Menü steuern
     und andere Befehle ausführen:

     TAB       nächstes Eingabefeld
     RETURN    nächstes Eingabefeld
     ^n        nächstes Eingabefeld
     ^p        vorheriges Eingabefeld
     ^y        zuletzt eingegebenen Text suchen
     ^b        nächstes Eingabefeld und Begriff suchen
     ^f        nächstes Eingabefeld und Begriff suchen
     ^c        bei der Suche wird Groß-/Kleinschreibung berücksichtigt
     ^r        Querverweistabelle neu generieren
     !         interaktive Shell aufrufen (mit ^d zu cscope zurück)
     ^l        Bildschirm neu aufbauen
     ?         Hilfsinformationen über cscope-Kommandos ausgeben
     ^d        cscope verlassen

     Wenn das erste Zeichen eines gesuchten Textes einer der angegebenen
     Tastenkombinationen entspricht, geben Sie vor diesem Zeichen ein \ ein.


Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

cscope(1)                                                         cscope(1)

   Ersetzen von altem durch neuen Text

     Nachdem der zu ändernde Text eingegeben wurde, fordert cscope den
     neuen Text an; anschließend werden die Zeilen mit dem alten Text ange-
     zeigt. Wählen Sie die zu ändernden Zeilen mit den folgenden Tasten
     aus:

     1-9       eine Zeile auswählen
     *         alle Zeilen auswählen
     SPACE     nächste Zeilen ausgeben
     +         nächste Zeilen ausgeben
     -         vorherige Zeilen ausgeben
     a         alle Zeilen auswählen
     ^d        ausgewählte Zeilen ändern und verlassen
     ESCAPE    Änderungsmodus ohne Änderung der markierten Zeilen verlassen

   Besondere Tasten

     Wenn Ihr Terminal Pfeiltasten hat, die im vi(1) funktionieren, können
     Sie diese benutzen, um sich innerhalb der Eingabefelder zu bewegen.
     Der Aufwärtspfeil ist sinnvoll, um zum vorigen Eingabefeld zu gelan-
     gen, statt mehrfach die TAB-Taste zu betätigen. Wenn Sie die Tasten
     CLEAR, NEXT oder PREV zur Verfügung haben, arbeiten diese wie die Kom-
     mandos ^l, + und -.

   Zeilenorientierte Schnittstelle

     Mit der Option -l können Sie cscope auch da verwenden, wo eine bild-
     schirmorientierte Schnittstelle nicht sinnvoll wäre, z. B. von einem
     anderen bildschirmorientierten Programm aus.

     cscope meldet sich mit >> und erwartet eine Feldnummer (von 0 an
     gezählt), unmittelbar gefolgt vom Suchmuster. lmain findet z. B. die
     Definition der Funktion main.

     Wenn Sie die Datei nur einmal durchsuchen lassen wollen, sollten Sie
     die Option -L und -Num Muster verwenden.

     Für -l gibt cscope die Anzahl der Verweiszeilen aus:

          cscope: 2 lines

     Für jeden gefundenen Verweis gibt cscope eine Zeile aus, die aus dem
     Dateinamen, dem Funktionsnamen, der Zeilennummer und dem Zeileninhalt
     besteht, jeweils durch Leerzeichen getrennt, z. B.

          main.c main 161 main(argc, argv)

     Beachten Sie, daß der Editor, anders als bei der bildschirmorientier-
     ten Schnittstelle, nicht aufgerufen wird, um einen einzigen Verweis
     anzuzeigen.



Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

cscope(1)                                                         cscope(1)

     cscope wird verlassen, wenn ein Dateiende-Zeichen entdeckt wird oder
     wenn das erste Zeichen einer Eingabezeile ^d oder q ist.

   Umgebungsvariablen

     EDITOR
          Bevorzugter Editor.

     INCLUDEDIRS
          Durch Doppelpunkte getrennte Liste von Verzeichnissen, die nach
          #include-Dateien durchsucht werden sollen.

     HOME HOME-Verzeichnis, wird beim Start einer Sitzung automatisch
          gesetzt.

     SHELL
          Bevorzugte Shell, voreingestellt ist sh(1).

     SOURCEDIRS
          Durch Doppelpunkte getrennte Liste von Verzeichnissen, die nach
          zusätzlichen Quelldateien durchsucht werden sollen.

     TERM Terminaltyp. Es muß sich um ein bildschirmorientiertes Terminal
          handeln.

     TERMINFO
          Vollständiger Pfadname des Terminalinformations-Verzeichnisses
          Wenn Ihr Terminal-Typ nicht in dem Standardverzeichnis terminfo
          steht, sehen Sie unter curses(3X) und terminfo(4) nach, um Ihre
          eigene Terminalbeschreibung zu erstellen.

     TMPDIR
          Verzeichnis für temporäre Dateien mit dem Standardwert /var/tmp.

     VIEWER
          Programm zur Anzeige von Dateien [wie z. B. pg(1)] auswählen.
          Diese Angabe hat Vorrang vor EDITOR.

     VPATH
          Eine durch Doppelpunkte getrennte Liste von Verzeichnissen, von
          denen jedes dieselbe Verzeichnisstruktur hat.

          Wenn VPATH gesetzt ist, sucht cscope in den angegebenen Verzeich-
          nissen nach Quelldateien; sonst wird nur im aktuellen Verzeichnis
          gesucht.









Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

cscope(1)                                                         cscope(1)

HINWEISE
     cscope erkennt Funktionsdefinitionen der Form

          fname blank ( args ) white argdecs white {

     fname       Funktionsname.

     blank       Enthält beliebig viele Leerzeichen oder Tabulatoren,
                 allerdings keine neue Zeile.

     args        Zeichenkette, die kein Zeichen ", (, ) oder Neue-Zeile-
                 Zeichen enthalten darf.

     white       Enthält beliebig viele Leerzeichen, Tabulatoren, Neue-
                 Zeile-Zeichen.

     argdecs    Enthält beliebig viele Argumentdeklarationen, wobei Kom-
                 mentar und Leerzeichen enthalten sein können.

     Es ist nicht notwendig, daß eine Funktionsdeklaration am Anfang einer
     Zeile beginnt. Der Rückgabetyp kann dem Funktionsnamen vorausgehen;
     cscope erkennt die Deklaration weiterhin. Funktionsdeklarationen, die
     von dieser Form abweichen, werden von cscope nicht erkannt.

     In der function-Spalte der Menüoption Find functions called by this
     function: wird nur die erste Funktion angezeigt, die in dieser Zeile
     aufgerufen wird. Für die folgende Funktion

        e()
        {
              return (f() + g());
        }

     würde die Ausgabe demnach folgendermaßen aussehen:

        Functions called by this function: e

        File  Function       Line
        a.c   f              3 return(f() + g());

     Gelegentlich kann es vorkommen, daß eine Funktionsdefinition oder ein
     Funktionsaufruf aufgrund von geschweiften Klammern innerhalb von #if-
     Anweisungen nicht erkannt wird. Genauso kann die Verwendung einer
     Variablen fälschlicherweise als eine Definition gewertet werden.

     Ein typedef-Name, der vor einer Präprozessor-Anweisung steht, wird
     fälschlicherweise als eine globale Definition gewertet, z. B.

        LDFILE *
        #if AR16WR




Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

cscope(1)                                                         cscope(1)

     Präprozessor-Anweisungen können auch das Erkennen einer globalen Defi-
     nition verhindern, z. B.

        char flag
        #ifdef ALLOCATESTORAGE
              = -1
        #endif
        ;

     Eine Funktionsdeklaration innerhalb einer Funktion wird fälschlicher-
     weise als Funktionsaufruf gewertet, z. B. wird folgende Funktionsde-
     klaration fälschlich als Aufruf von g() erkannt:

        f()
        {
              void g();
        }

     cscope erkennt C++-Klassen an ihrem Schlüsselwort. Es erkennt jedoch
     nicht, daß auch struct eine Klasse ist. Genausowenig erkennt es die
     Definitionen von "inline member"-Funktionen innerhalb einer Struktur.
     Es erwartet außerdem kein Klassen-Schlüsselwort in einem typedef und
     so wertet es fälschlicherweise in der folgenden Definition X als Defi-
     nition:

          typedef class X * Y;

     Es erkennt auch keine Operator-Funktionsdefinitionen:

        Bool Feature::operator==(const Feature & other)
        {
              ...
        }

DATEIEN
     cscope.files
          Standarddatei, die die Optionen -I, -p und -T und die Liste der
          Quelldateien enthält; kann durch die Option -i anders gewählt
          werden.

     cscope.out
          Querverweistabelle, die in das HOME-Verzeichnis geschrieben wird,
          falls sie im aktuellen Verzeichnis nicht angelegt werden kann.

     ncscope.out
          Temporäre Datei, die die neue Querverweistabelle enthält, bevor
          sie die alte Querverweistabelle ersetzt.

     INCDIR
          Standardverzeichnis für #include-Dateien (gewöhnlich
          /usr/include).



Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

cscope(1)                                                         cscope(1)

SIEHE AUCH
     curses(3X), terminfo(4).

     Kapitel "cscope" in "Leitfaden und Werkzeuge für die Programmierung
     mit C".

















































Seite 8                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026