When cscope is called for a set of C, lex, or yacc source files, it builds a symbol cross-reference table for the functions, function calls, macros, variables, and preprocessor symbols in those files. You can then query that table about the locations of symbols you specify. First, from a menu you choose the type of search you would like to have performed. You might, for instance, want cscope to find all the functions that call a specified function.
When cscope has completed this search, it prints a list. Each list entry contains the name of the file, the number of the line, and the text of the line in which cscope has found the specified code. The list can also include the names of the functions that call the specified function. You then have the option of requesting another search or examining one of the listed lines with the editor. If you choose the latter, cscope invokes the editor for the file in which the line appears, with the cursor on that line. You can then view the code in context and edit the file as any other file. You can then return to the menu from the editor to request a new search.
Because the procedure you follow depends on the task at hand, no single set of instructions is relevant for using cscope. For an extended example of its use, review the cscope session described in the next section, which shows how you can locate a bug in a program without learning all the code.