2001-01-24 00:31:17 +00:00
|
|
|
<sect1 id="ch06-aboutdebug">
|
|
|
|
<title>About debugging symbols</title>
|
2001-09-26 01:24:04 +01:00
|
|
|
<?dbhtml filename="aboutdebug.html" dir="chapter06"?>
|
2001-01-24 00:31:17 +00:00
|
|
|
|
2002-09-08 22:54:14 +01:00
|
|
|
<para>Most programs and libraries are by default compiled with debugging
|
|
|
|
symbols included (with gcc option -g).</para>
|
2001-01-24 00:31:17 +00:00
|
|
|
|
2002-09-08 22:54:14 +01:00
|
|
|
<para>When debugging a program or library that was compiled with debugging
|
|
|
|
information included, the debugger can give you not only memory addresses
|
|
|
|
but also the names of the routines and variables.</para>
|
|
|
|
|
|
|
|
<para>But the inclusion of these debugging symbols enlarges a program or
|
|
|
|
library significantly. To get an idea of the amount of space these symbols
|
|
|
|
occupy, have a look at the following:</para>
|
2001-01-24 00:31:17 +00:00
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
|
2002-09-08 22:54:14 +01:00
|
|
|
<listitem><para>a bash binary
|
|
|
|
with debugging symbols: 1200 KB</para></listitem>
|
2001-01-24 00:31:17 +00:00
|
|
|
|
2002-09-08 22:54:14 +01:00
|
|
|
<listitem><para>a bash binary
|
|
|
|
without debugging symbols: 480 KB</para></listitem>
|
2001-01-24 00:31:17 +00:00
|
|
|
|
2002-09-08 22:54:14 +01:00
|
|
|
<listitem><para>glibc and gcc files (/lib and /usr/lib)
|
|
|
|
with debugging symbols: 87 MB</para></listitem>
|
2001-01-24 00:31:17 +00:00
|
|
|
|
2002-09-08 22:54:14 +01:00
|
|
|
<listitem><para>glibc and gcc files
|
|
|
|
without debugging symbols: 16 MB</para></listitem>
|
2001-01-24 00:31:17 +00:00
|
|
|
|
|
|
|
</itemizedlist>
|
|
|
|
|
2002-09-08 22:54:14 +01:00
|
|
|
<para>Sizes may vary a little, depending on which compiler was used and
|
|
|
|
which C library. But when comparing programs with and without debugging
|
|
|
|
symbols, the difference will generally be a factor between 2 and 5.</para>
|
|
|
|
|
|
|
|
<para>As most people will probably never use a debugger on their system
|
|
|
|
software, a lot of disk space can be regained by removing these symbols .</para>
|
2001-03-23 03:27:23 +00:00
|
|
|
|
2002-09-08 22:54:14 +01:00
|
|
|
<para>To remove debugging symbols from a binary (which must be an a.out
|
|
|
|
or ELF binary), run <userinput>strip --strip-debug filename</userinput>.
|
|
|
|
Wildcards can be used to treat multiple files (use something like
|
|
|
|
<userinput>strip --strip-debug $LFS/static/bin/*</userinput>).</para>
|
2001-01-24 00:31:17 +00:00
|
|
|
|
2001-08-29 20:29:31 +01:00
|
|
|
<para>For your convenience, chapter 9 includes one simple command to strip
|
2002-09-08 22:54:14 +01:00
|
|
|
all debugging symbols from all programs and libraries on your system.
|
|
|
|
Additional information on optimization you can find in the hint at
|
|
|
|
<ulink url="&hints-root;optimization.txt"/>.</para>
|
2001-04-03 21:27:57 +01:00
|
|
|
|
2001-01-24 00:31:17 +00:00
|
|
|
</sect1>
|
|
|
|
|