When you're working on a large software project, it's extremely difficult to keep all the bits and pieces in your head.
cscope is designed to help eliminate all your needless searching through files, enabling you to quickly search for:
- all references to a symbol
- global definitions
- functions called by a function
- functions calling a function
- text string
- regular expression pattern
- a file
- files including a file
cscope is primarily designed to work with C, though it works reasonably well for C++ (I generally rely on tools like
cscope fails for C++).
Before you can start using cscope, you need to build the database for your source tree. I have created an alias in my
.bashrc file so I don't have to remember all of the required arguments for generating a new
alias cscope-gen="cscope -bkqR"
Once you have a database, you can start the program by running
cscope -d. You should see the following options appear:
Find this C symbol:
Find this function 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:
And now you're ready to search! Navigate through the options with the up/down keys, and hit enter to execute the search. The default quit keystroke is ctrl+q.
cscope integrates very nicely with
vim: more details can be found in the links below.