当我编译程序时gcc -o myprog myprog.c,不会剥离生成的二进制文件:
myprog: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux 2.6.26,
BuildID[sha1]=0x2697ed96b65e8a11239af0a44abc7896954b6e20, not stripped
Run Code Online (Sandbox Code Playgroud)
我想知道为什么gcc当我不提供任何调试参数时,默认情况下会生成非剥离的二进制文件。
是否应在编译后(即使用)剥离所有二进制文件strip myprog?还是具有二进制非剥离的优势?
AFAICS,在大多数二进制文件/bin/,/usr/bin/被剥离。
AFAIK 一旦二进制文件被剥离,您将无法取回剥离的信息,直到或除非您重新生成二进制文件。当您需要处理内存限制时,剥离非常有用。这可能是 GCC 中默认未启用 strip 的原因。
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |