All input is first filtered through cpp (1). Functions called but not defined within the source file s are shown as:
function [external]
Recursive references are shown as:
<<< function
Options are:
0.6i -f Add function as a root of a call graph to be printed.
-p Make cpp search the APE include directories.
-t Provides a terse form of output, in which the calling pattern for any function is printed only once on the first occurrence of the function. Subsequent occurrences output the function name and a notation
0.6i -v Full output of function calling patterns on every occurrence.
-w n Set the output width to n . The default is 80 columns.
-D name
0
0.4v -D name=defn Define the name for cpp , as if by #define . If no definition is given, the name is defined as 1.
-U name Remove any initial definition of name , where name is a reserved symbol that is predefined by cpp .
-I dir Change the algorithm for searching for #include files whose names do not begin with / to look in dir before looking in the directories on the standard list.
What internal functions does dd call?
.EX % calls -f main /sys/src/cmd/dd.c | grep -v '\e[external\e]' 1 main 5 number 6 <<< number 9 match 17 flsh 21 term 22 stats 25 term ... [see line 21] 26 stats ... [see line 22]Note the recursion in number .
Generate the PC kernel's internal call graph.
.EX cd /sys/src/9/pc calls -f main -I../port -I. ../port/*.c ../ip/*.c *.c | grep -v externalDoes not understand calls through function pointers.
Does not understand the restricted scope of static functions.