2009-09-11 217 views

回答

25

从(Mac OS X的,但其它的类似)man page

条删除或修改连接到的 汇编器和链接编辑器的输出符号表。在调试程序之后节省空间并限制动态绑定符号非常有用。

注意对位“后,程序已经调试”,因为调试剥离可执行文件是非常辛苦,确实如此。 “极限动态绑定符号”是一种罕见的用法:它可以让您通过取走指示实际代码所在位置的索引条目来使外部库中的某些功能无法访问。这也在手册页中解释。

由于便宜和丰富的磁盘是在大多数情况下,你根本不会再打扰了。但是您可能希望它适用于嵌入式设备,救援磁盘等空间受限的情况。

+21

只要您保留可执行文件的副本,您可以随时随地发运剥离版本并在需要时针对未剥离版本进行调试。这在嵌入式开发中很常见,例如:如果核心文件(来自运行剥离二进制文件的客户)从字段中进来,则可以将未提取的二进制文件加载到gdb中,然后打开核心文件并具有完全的符号可调试性。 – 2009-09-11 22:30:22

+18

虽然硬盘空间很便宜,但是磁盘性能并非如此。二进制文件越小,加载应用程序/库时必须执行的磁盘I/O就越少。 – 2009-10-01 20:38:15

+3

我会再来。胖程序将我强大的计算机带给可悲的抓取。程序员!小是美丽的!请注意,加载速度缓慢的另一个原因是支离破碎的库。他们是分散的,使他们更细粒,避免 - 哈哈 - 不必要的加载。在快速随机访问SSD时代,这一点并不重要。 – spraff 2011-08-01 15:47:33

7

它从二进制文件中去除符号信息。该二进制文件包含一些将符号(例如函数名称)映射到特定位置的信息。 strip删除那些。

4

在默认操作,带材 命令删除符号表并 从 可执行任何调试信息。

From here