Describe cscope.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 31 Mar 2007 13:49:21 +0000 (13:49 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 31 Mar 2007 13:49:21 +0000 (13:49 +0000)
doc/devel.texi

index 48ed58d46e2f2a95f654c2431fba02cc5d77b0d5..d5439ed7e926f0ba6300ae39b4c234ef02f62ae9 100644 (file)
@@ -5,6 +5,7 @@ Here are some tools that you might find useful while developing code.
 
 @menu
 * Tags::                        
+* cscope::                      
 * CVS::                         
 * SourceForge::                 
 * VNC::                         
@@ -26,6 +27,33 @@ the default target.  If a tag name has multiple definitions, @kbd{M-0
 M-.} jumps to the next one.  To jump back to where you were before
 you followed the last tag, use @kbd{M-*}.
 
+@node cscope
+@section cscope
+
+The @command{cscope} program also provides an index to functions and
+variables declared in a program.  It has some features that tag
+facilities lack.  Most notably, it can find all the points in a
+program at which a given function is called.
+
+The @file{Makefile} in @file{pintos/src} produces @command{cscope}
+indexes when it is invoked as @code{make cscope}.  Once the index has
+been generated, run @command{cscope} from a shell command line; no
+command-line arguments are normally necessary.  Then use the arrow
+keys to choose one of the search criteria listed near the bottom of
+the terminal, type in an identifier, and hit @key{Enter}.
+@command{cscope} will then display the matches in the upper part of
+the terminal.  You may use the arrow keys to choose a particular
+match; if you then hit @key{Enter}, @command{cscope} will invoke the
+default system editor@footnote{This is typically @command{vi}.  To
+exit @command{vi}, type @kbd{: q @key{Enter}}.} and position the
+cursor on that match.  To start a new search, type @key{Tab}.  To exit
+@command{cscope}, type @kbd{Ctrl-d}.
+
+Emacs and some versions of @command{vi} have their own interfaces to
+@command{cscope}.  For information on how to use these interface,
+visit @url{http://cscope.sourceforge.net, the @command{cscope} home
+page}.
+
 @node CVS
 @section CVS