cscope: How to use cscope to search for a symbol using command line?

大城市里の小女人 提交于 2019-12-03 07:29:20

You can call cscope with the -R version for recursive searching. For example:

cscope -d -f/path/to/cscope.out -R -L1 some_symbol

(searches for the definition of some_symbol)

cscope -d -f/path/to/cscope.out -R -L3 some_symbol

(shows all locations where some_symbol is called)

You can omit the -f option if cscope.out is located in the current working directory.

Note that the above call yield zero results for an indexed symbol if -R is omitted. Very old cscope versions don't support -R. For example, version 15.8a does support it.

The list of possible values for -L is:

0: Find this C symbol
1: Find this definition
2: Find functions called by this function
3: Find functions calling this function
4: Find this text string
6: Find this egrep pattern
7: Find this file
8: Find files #including this file
9: Find places where this symbol is assigned a value

The -R option can also be used when creating the cscope.out file, e.g.:

cscope -bR

You are probably looking for this:

cscope -L1<symbol>

You could use -d as well, although if you're modifying the files, it's good for cscope to update it's database.

-L means "execute a single line-oriented command", and the following digit (1 in this case), which could also have been written as a separate option, is the specific command, which the manpage confusingly calls a "field". The "fields" are given by the interactive cscope prompt; I added the digit for convenience. "this" refers to the text which follows the digit; remember that it's a pattern so you don't necessarily have to type the full symbol.

 0 Find this C symbol:
 1 Find this function definition:
 2 Find functions called by this function:
 3 Find functions calling this function:
 4 Find this text string:
 5 Change this text string:
 6 Find this egrep pattern:
 7 Find this file:
 8 Find files #including this file:
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!