出售域名  LinuxTags

6.70. 关于调试符号

默认情况下大多数程序和库的编译带有调试符号。(类似 gcc-g 选项。)这意味着当你调试一个包含调试信息的已编译的程序或库时,调试程序不仅能提供内存地址,还能提供变量和实例的名字。

然而,包含这些调试符号明显的增大了程序或库。下面这个例子说明了这些符号有多么占地方:

  • 一个有调试符号的二进制 bash : 1200 KB

  • 一个无调试符号的二进制 bash : 480 KB

  • 有调试符号的 Glibc 和 GCC 文件 (/lib/usr/lib): 87 MB

  • 无调试符号的 Glibc 和 GCC 文件: 16 MB

大小可能会因为所使用的编译器和 C 语言库的不同而改变,但是当比较有无调试符号的程序时,大小可能相差 2 到 5 倍。

因为大多数用户从来不会在他们的系统软件上使用调试器,没了这些调试符号可以省下很多磁盘空间。下一页将会告诉你如何剥离程序和库中所有的调试符号。

host by nrdoc.com CDN 

出售域名  LinuxTags