LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
123
返回列表 发新帖
楼主: pluskid

请问strip命令到底对可执行文件干了什么?

[复制链接]
 楼主| 发表于 2006-1-14 10:20:10 | 显示全部楼层
Post by kj501
不完全是。可执行文件中包含的符号有多种用途。如果可执行文件是动态连接的,这些符号还要在动态链接时被动态解析。否则程序是运行不了的。

那就是说不能随便对程序执行strip命令罗!?
回复 支持 反对

使用道具 举报

发表于 2006-1-14 10:21:57 | 显示全部楼层
Post by pluskid
:ask apue是什么?

http://www.google.com/search?q=a ... la:en-US:unofficial
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-14 10:30:59 | 显示全部楼层
Post by kj501
用于重定位的符号不能删除。不然在链接时会出错。

那我看前面那段strip程序的代码,就是直接丢弃后面的内容,拷贝了header,和text, data两段呀,后面的就直接丢弃了?

  1. size = (long)head.a_text + head.a_data;
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-14 10:33:50 | 显示全部楼层

多谢!现在是想了解一下strip的机制,有犯低级错误的地方请各位见谅,我有时间一定好好看那本书,只是最近在期末考试中……
回复 支持 反对

使用道具 举报

发表于 2006-1-16 09:42:40 | 显示全部楼层
Post by pluskid
那我看前面那段strip程序的代码,就是直接丢弃后面的内容,拷贝了header,和text, data两段呀,后面的就直接丢弃了?

  1. size = (long)head.a_text + head.a_data;
复制代码

你应该更深入地了解一下ELF的格式。即使是text或者data,在ELF中也是由很多section组成的。其中有些section就包含了动态连接的符号信息。你对strip后的可执行文件用objdump -R就执行一下就可以看到。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-16 09:57:11 | 显示全部楼层
恩,看来很深奥,一时还搞不懂,先看apue吧。
回复 支持 反对

使用道具 举报

发表于 2009-10-22 16:15:44 | 显示全部楼层
二楼的哥哥,能不能把你手头有全套的早期 UNIX 的资料,从硬件手册,到操作系统,到编译器、汇编器、链接器。分享一下啊,小弟不胜感激,
我邮箱,
yanguoliu2008@126.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表