Joh*_*han 36 c optimization gcc strip
如果二进制文件大小不是问题,使用-g是否有任何缺点,而不是在性能关键环境中运行的条带二进制文件?我有很多磁盘空间,但二进制文件是cpu密集型并使用大量内存.二进制文件加载一次,并且存活了几个小时.
编辑:
我想将二进制文件与调试信息一起使用的原因是在出现分段错误时生成有用的核心转储.
Sim*_*ter 30
ELF加载程序加载段而不是段 ; 从节到段的映射由用于构建可执行文件的链接描述文件确定.
默认链接描述文件不会将调试节映射到任何段,因此省略.
符号信息有两种形式:静态符号在带外处理,从不作为部分数据存储; 动态符号表由链接器生成,并添加到与可执行文件一起加载的特殊段中,因为它需要可供动态链接器访问.该strip命令仅删除静态符号,这些符号从未在段中引用.
因此,您可以在整个过程中使用完整的调试信息,这不会影响RAM中可执行映像的大小,因为它未加载.这也意味着信息不包含在核心转储中,因此这也不会给您带来任何好处.
该objcopy实用程序有一个特殊选项,只复制调试信息,因此您可以生成包含此信息的第二个ELF文件并使用剥离的二进制文件; 在分析核心转储时,您可以将这两个文件加载到调试器中:
objcopy --only-keep-debug myprogram myprogram.debug
strip myprogram
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4964 次 |
| 最近记录: |