source: chapter06/aboutdebug.xml@ b08f409

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 b08f409 was b08f409, checked in by Gerard Beekmans <gerard@…>, 23 years ago

Initial XML commit

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

  • Property mode set to 100644
File size: 2.3 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 and optimizing level 2 (gcc options -g and -O2) and are compiled
7for a specific CPU. On Intel platforms software is compiled for i386
8processors by default. If you don't wish to run software on other
9machines other than your own, you might want to change the default
10compiler options so that they will be compiled with a higher
11optimization level, no debugging symbols and generate code for your
12specific architecture. Let me first explain what debugging symbols
13are.
14</para>
15
16<para>
17A program compiled with debugging symbols means you can run a program or
18library through a debugger and the debugger's output will be user friendlier.
19These debugging symbols also enlarge the program or library significantly.
20</para>
21
22<para>
23To remove debugging symbols from a binary (must be an a.out or ELF binary)
24run <userinput>strip --strip-debug filename</userinput> You can use wild cards
25if you need to strip debugging symbols from multiple files (use something like
26strip --strip-debug $LFS/usr/bin/*). Another, easier, options is just
27not to compile programs with debugging symbols. Most people will probably
28never use a debugger on software, so by leaving those symbols out you
29can save a lot of diskspace.
30</para>
31
32<para>
33Before you wonder if these debugging symbols would make a big difference,
34here are some statistics:
35</para>
36
37<itemizedlist>
38
39<listitem><para>
40 A dynamic Bash binary with debugging symbols: 1.2MB
41</para></listitem>
42
43<listitem><para>
44 A dynamic Bash binary without debugging symbols: 478KB
45</para></listitem>
46
47<listitem><para>
48 /lib and /usr/lib (glibc and gcc files) with debugging
49 symbols: 87MB
50</para></listitem>
51
52<listitem><para>
53 /lib and /usr/lib (glibc and gcc files) without
54 debugging symbols: 16MB
55</para></listitem>
56
57</itemizedlist>
58
59<para>
60Sizes may vary depending on which compiler was used and which C library
61version was used to link dynamic programs against, but your results will be
62similar if you compare programs with and without debugging symbols. After
63I was done with this chapter and stripped all debugging symbols from all LFS
64binaries and libraries I regained a little over 102 MB of disk space. Quite
65the difference.
66</para>
67
68</sect1>
69
Note: See TracBrowser for help on using the repository browser.