mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-01-19 13:37:39 +00:00
6370fa6cff
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@14 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
70 lines
2.3 KiB
Plaintext
70 lines
2.3 KiB
Plaintext
<sect1 id="ch06-aboutdebug">
|
|
<title>About debugging symbols</title>
|
|
|
|
<para>
|
|
Most programs and libraries by default are compiled with debugging
|
|
symbols and optimizing level 2 (gcc options -g and -O2) and are compiled
|
|
for a specific CPU. On Intel platforms software is compiled for i386
|
|
processors by default. If you don't wish to run software on other
|
|
machines other than your own, you might want to change the default
|
|
compiler options so that they will be compiled with a higher
|
|
optimization level, no debugging symbols and generate code for your
|
|
specific architecture. Let me first explain what debugging symbols
|
|
are.
|
|
</para>
|
|
|
|
<para>
|
|
A program compiled with debugging symbols means you can run a program or
|
|
library through a debugger and the debugger's output will be user friendlier.
|
|
These debugging symbols also enlarge the program or library significantly.
|
|
</para>
|
|
|
|
<para>
|
|
To remove debugging symbols from a binary (must be an a.out or ELF binary)
|
|
run <userinput>strip --strip-debug filename</userinput> You can use wild cards
|
|
if you need to strip debugging symbols from multiple files (use something like
|
|
strip --strip-debug $LFS/usr/bin/*). Another, easier, options is just
|
|
not to compile programs with debugging symbols. Most people will probably
|
|
never use a debugger on software, so by leaving those symbols out you
|
|
can save a lot of diskspace.
|
|
</para>
|
|
|
|
<para>
|
|
Before you wonder if these debugging symbols would make a big difference,
|
|
here are some statistics:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>
|
|
A dynamic Bash binary with debugging symbols: 1.2MB
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
A dynamic Bash binary without debugging symbols: 478KB
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
/lib and /usr/lib (glibc and gcc files) with debugging
|
|
symbols: 87MB
|
|
</para></listitem>
|
|
|
|
<listitem><para>
|
|
/lib and /usr/lib (glibc and gcc files) without
|
|
debugging symbols: 16MB
|
|
</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
Sizes may vary depending on which compiler was used and which C library
|
|
version was used to link dynamic programs against, but your results will be
|
|
similar if you compare programs with and without debugging symbols. After
|
|
I was done with this chapter and stripped all debugging symbols from all LFS
|
|
binaries and libraries I regained a little over 102 MB of disk space. Quite
|
|
the difference.
|
|
</para>
|
|
|
|
</sect1>
|
|
|