source: chapter06/aboutdebug.xml@ b4ffa369

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.0 6.1 6.1.1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk v3_0 v3_1 v3_2 v3_3 v4_0 v4_1 v5_0 v5_1 v5_1_1 xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since b4ffa369 was b4ffa369, checked in by Gerard Beekmans <gerard@…>, 23 years ago

Updated url's so in txt version when there's no hyperlink, the address
is still available

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@770 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 2.2 KB
Line 
1<sect1 id="ch06-aboutdebug">
2<title>About debugging symbols</title>
3
4<para>
5Most programs and libraries by default are compiled with debugging
6symbols (gcc option -g) Let me explain what these debugging symbols
7are and why you may not want them.
8</para>
9
10<para>
11A program compiled with debugging symbols means a user can run a program or
12library through a debugger and the debugger's output will be user
13friendly. These debugging symbols also enlarge the program or library
14significantly.
15</para>
16
17<para>
18Before you start wondering whether these debugging symbols really make a
19big difference, here are some statistics. Use them to draw your own
20conclusion.
21</para>
22
23<itemizedlist>
24
25<listitem><para>
26 A dynamic Bash binary with debugging symbols: 1.2MB
27</para></listitem>
28
29<listitem><para>
30 A dynamic Bash binary without debugging symbols: 478KB
31</para></listitem>
32
33<listitem><para>
34 /lib and /usr/lib (glibc and gcc files) with debugging
35 symbols: 87MB
36</para></listitem>
37
38<listitem><para>
39 /lib and /usr/lib (glibc and gcc files) without
40 debugging symbols: 16MB
41</para></listitem>
42
43</itemizedlist>
44
45<para>
46Sizes vary depending on which compiler was used and which C library
47version was used to link dynamic programs against, but results will be
48similar if you compare programs with and without debugging symbols. After
49I was done with this chapter and stripped all debugging symbols from all LFS
50binaries I regained a little over 102 MB of disk space. Quite the difference.
51</para>
52
53<para>
54To remove debugging symbols from a binary (must be an a.out or ELF
55binary) run <userinput>strip --strip-debug filename</userinput>. Wild cards
56can be used to strip debugging symbols from multiple files (use something
57like <userinput>strip --strip-debug $LFS/usr/bin/*</userinput>).
58Most people will probably never use a debugger on software, so by
59removing those symbols a lot of disk space can be regained.
60</para>
61
62<para>
63You might find additional information in the optimization hint which can
64be found at <ulink
65url="http://archive.linuxfromscratch.org/lfs-hints/optimization.txt">
66http://archive.linuxfromscratch.org/lfs-hints/optimization.txt</ulink>.
67</para>
68
69</sect1>
70
Note: See TracBrowser for help on using the repository browser.