source: chapter06/aboutdebug.xml@ 5f0c290

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 12.2 12.2-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/loongarch-12.2 xry111/mips64el xry111/multilib xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 5f0c290 was 81a47c0, checked in by Thomas Balu Walter <tw@…>, 24 years ago

You

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

  • Property mode set to 100644
File size: 2.4 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 a user doesn't wish to run software on other
9machines other than his own, he 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 his
12specific architecture. Let me first explain what debugging symbols
13are.
14</para>
15
16<para>
17A program compiled with debugging symbols means a user 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>. A user can use wild
25 cards
26if he needs to strip debugging symbols from multiple files (use something like
27strip --strip-debug $LFS/usr/bin/*). Another, easier, options is just
28not to compile programs with debugging symbols. Most people will probably
29never use a debugger on software, so by leaving those symbols out
30a lot of diskspace can be saved.
31</para>
32
33<para>
34Before someone wonders if these debugging symbols would make a big difference,
35here are some statistics:
36</para>
37
38<itemizedlist>
39
40<listitem><para>
41 A dynamic Bash binary with debugging symbols: 1.2MB
42</para></listitem>
43
44<listitem><para>
45 A dynamic Bash binary without debugging symbols: 478KB
46</para></listitem>
47
48<listitem><para>
49 /lib and /usr/lib (glibc and gcc files) with debugging
50 symbols: 87MB
51</para></listitem>
52
53<listitem><para>
54 /lib and /usr/lib (glibc and gcc files) without
55 debugging symbols: 16MB
56</para></listitem>
57
58</itemizedlist>
59
60<para>
61Sizes may vary depending on which compiler was used and which C library
62version was used to link dynamic programs against, but results will be
63similar if a user compares programs with and without debugging symbols. After
64I was done with this chapter and stripped all debugging symbols from all LFS
65binaries and libraries I regained a little over 102 MB of disk space. Quite
66the difference.
67</para>
68
69</sect1>
70
Note: See TracBrowser for help on using the repository browser.