问题
I am trying to find a way to dump ALL the functions name and it's path from cscope database. Is there a way to do that from cscope CLI?
Note: the cscope source code is available for download.
回答1:
Try the following:
cscope -R -L -2 ".*" | awk -F ' ' '{print $2 "#" $1}' | sort | uniq
- The command
cscope -R -L -2 ".*"will output functions called by any function (see explanation of the options below). For each reference found,cscopeoutputs a line consisting of the file name, function name, line number, and line text, separated by spaces. - Use
awkto extract the function name$2and file name$1separated by#. Change$2,$1and the separator#if you need other output fields or separator. - Sort the output with
sort. - Get unique items with
uniq.
cscope options (see http://cscope.sourceforge.net/cscope_man_page.html):
-RRecurse subdirectories for source files.-LDo a single search with line-oriented output when used with the -num pattern option.-2 ".*"Go to input field num (here 0-based field 2) and find pattern (here.*for all). You can see the input fields in cscope's screen mode. This may vary depending on the version you are using. The fields for version 15.8a under debian are:- 0: Find this C symbol:
- 1: Find this global 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:
来源:https://stackoverflow.com/questions/23766566/how-can-i-display-all-function-name-from-cscope-database