The callgraph file:
is saved
in the same directory as the generated image.
has the same name as the linked image. Use the --callgraph_file=filename option
to specify a different callgraph filename.
has a default output format of HTML. Use the --callgraph_output=fmt option
to control the output format.
Note
If the linker is to calculate the function stack usage, any
functions defined in the assembler files must have the appropriate:
For each function func the linker lists
the:
processor
state for which the function is compiled (ARM or Thumb)
set of functions that call func
set of functions that are called by func
number of times the address of func is
used in the image.
In addition, the callgraph identifies functions that are:
called through interworking
veneers
defined outside the image
permitted to remain undefined (weak references)
called through a Procedure Linkage Table (PLT)
not called but still exist in the image.
The static callgraph also gives information about stack usage.
It lists the:
size of the stack frame
used by each function
maximum size of the stack used by the function over
any call sequence, that is, over any acyclic chain of function calls.
If there is a cycle, or if the linker detects a function with
no stack size information in the call chain, + Unknown is
added to the stack usage. A reason is added to indicate why stack
usage is unknown.
The linker reports missing stack frame information if there
is no debug frame information for the function.
For indirect functions, the linker cannot reliably determine
which function made the indirect call. This might affect how the
maximum stack usage is calculated for a call chain. The linker lists
all function pointers used in the image.
Use frame directives in assembly language code to describe
how your code uses the stack. These directives ensure that debug
frame information is present for debuggers to perform stack unwinding
or profiling.