Methods of reducing debug information
in objects and libraries
There are a number of ways to reduce the amount of debug information
being generated per source file. For example, you can:
Avoid conditional use of #define in
header files. This might make it more difficult for the linker to
eliminate duplicate information.
Modify your C or C++ source files so that header
files are #included in the same order.
Partition header information into smaller blocks.
That is, use a larger number of smaller header files rather than
a smaller number of larger header files. This helps the linker to eliminate
more of the common blocks.
Only include a header file in a C or C++ source
file if it is really required.
Guard against the multiple inclusion of header files.
Place multiple-inclusion guards inside the header file, rather than
around the #include statement. For example, if
you have a header file foo.h, add:
#ifndef foo_h
#define foo_h
...
// rest of header file as before
...
#endif /* foo_h */
You can use the compiler option --remarks to
warn about unguarded header files.
Compile your code with the --no_debug_macros command-line
option to discard preprocessor macro definitions from debug tables.
Consider using (or not using) --remove_unneeded_entities.
Caution
Although --remove_unneeded_entities can
help to reduce the amount of debug information generated per file,
it has the disadvantage of reducing the number of debug sections
that are common to many files. This reduces the number of common
debug sections that the linker is able to remove at final link time,
and can result in a final debug image that is larger than necessary.
For this reason, use --remove_unneeded_entities only when
necessary.
This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.
ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.