| |||
| Home > The Linker Command Syntax > armlink command syntax > Generating image-related information | |||
These options control how to extract and present information about the image:
--callgraphThis option creates a static callgraph of functions in HTML format. The callgraph gives definition and reference information for all functions in the image.
Any assembler files must contain PROC/ENDP and FRAME
PUSH/POP directives if the linker is to calculate the function
stack sizes.
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).
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.
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.
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.
For more details on how stack usage is determined, see the chapter describing the directives reference in RealView Developer Kit v2.2 Assembler Guide.
--feedback fileThis option generates a feedback file, for the next time a file is compiled, to inform the compiler about unused functions.
When you next compile the file, use the compiler option --feedback to
specify the feedback file to use. Unused functions are placed in
their own sections for possible future elimination by the linker.
For full details on how to use this file see Linker feedback.file
--info topicsThis option prints information about specified topics,
where is a comma-separated
list of topic keywords. A topic keyword can be one of the following:topics
commonLists all common sections that were eliminated from
the image. Using this option implies --info common,totals.
debugLists
all rejected input debug sections that were eliminated from the
image as a result of using --remove. Using this
option implies --info debug,totals.
inlineGives
details of any function that is inlined by the linker, and gives
the total number of inlines, as a result of using --inline. For
more information on branch inlining see Branch inlining.
sizesGives
a list of the Code and Data (RO Data, RW Data, ZI Data, and Debug
Data) sizes for each input object and library member in the image.
Using this option implies --info sizes,totals.
tailreorderGives details of any tail calling sections that
have been moved above their targets, as a result of using --tailreorder.
For more information on handling tail calling sections see Branch inlining.
totalsGives totals of the Code and Data (RO Data, RW Data, ZI Data, and Debug Data) sizes for input objects and libraries.
veneersGives details of linker-generated veneers. For more information on veneers see Veneer generation.
unusedLists
all unused sections that were eliminated from the image as a result
of using --remove.
exceptionsGives details of exception table generation and optimization.
The output from --info sizes,totals always
includes the padding values in the totals for input objects and
libraries.
If you are using RW data compression (the default), or if
you have specified a compressor using the --datacompressor option,
the output from id--info sizes,totals includes an
entry under Grand Totals to reflect the true
size of the image.
Spaces are not permitted between keywords in a list. For example, you can enter --info sizes,totals but not --info sizes, totals.
For more details on how to use this information see Getting information about images.
--mangledThis option instructs the linker to display mangled
C++ symbol names in diagnostic messages, and in listings produced
by the --xref, --xreffrom, --xrefto,
and --symbols options. If this option is selected,
the linker does not unmangle C++ symbol names. The symbol names
are displayed as they appear in the object symbol tables.
--unmangledThis option instructs the linker to display unmangled
C++ symbol names in diagnostic messages, and in listings produced
by the --xref, --xreffrom, --xrefto,
and --symbols options.
If this option is selected, the linker unmangles C++ symbol names so that they are displayed as they appear in your source code. This is the default.
--mapThis option creates an image map. The image map contains the address and the size of each load region, execution region, and input section in the image, including linker-generated input sections.
--symbolsThis option lists each local and global symbol used in the link step, and its value.
This does not include mapping symbols. Use --list_mapping_symbols to include
mapping symbols in the output.
--list_mapping_symbolsUse this option to include mapping symbols in the
output produced by --symbols.
In the symbol table, mapping symbols are used to flag transitions between ARM code, Thumb code, and data (see the ELF for the ARM Architecture [AAELF] for details).
--symdefs fileThis option creates a symbol definitions file containing the global symbol definitions from the output image.
By default, all global symbols are written to the symdefs file.
If already exists,
the linker restricts its output to the symbols listed in the existing filesymdefs file.
If you do not want this behavior, be sure to delete any existing symdefs file before
the link step.
If is specified
without path information, the linker searches for it in the directory
where the output image is being written. If it is not found, it is
created in that directory.file
You can use the symbol definitions file as input when linking another image. See Accessing symbols in another image for more information.
--xrefThis option lists all cross-references between input sections.
--xrefdbgThis option lists all cross-references between input debug sections.
--xreffrom object(section)This option lists cross-references from input in section to
other input sections. This is a useful subset of the listing produced
by using object--xref if you are interested in references
from a specific input section. You can have multiple occurrences
of this option to list references from more than one input section.
--xrefto object(section)This option lists cross-references to input in section from
other input sections. This is a useful subset of the listing produced
by using object--xref if you are interested in references
to a specific input section. You can have multiple occurrences of
this option in order to list references to more than one input section.