荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: rainycat.bbs@bbs.sjtu.edu.cn (Rainy Cat), 信区: Linux
标  题: Re: linux指令地址和可执行文件位置映射问题
发信站: 饮水思源 (Thu Aug 28 12:30:45 2003)
转信站: SZU!news.tiaozhan.com!news.neu.edu.cn!SJTU

readelf -S /my/exec/file
Addr栏是每个section的地址,Off为该section在文件中的偏移量。

这些信息可以从可执行文件中读到,详见有关ELF格式的文档。

要获得动态链接库中地址所对应的文件位置,就要困难一些,因为
加载时要将其进行重定位,即实际加载的地址为readelf得到的地址
加上加载时的起始地址。

这些信息还可以从/proc/<pid>/maps中得到,<pid>为进程号,如为
本进程则也可用/proc/self/maps,其格式可见man proc

【 在 AnApple@bbs.pku.edu.cn (一个苹果) 的大作中提到: 】
: 各位linux高手,
: 程序运行的时候需要操作系统把可执行文件装载(load)
: 到内存中,设定好各种数据段、代码段等等才可以运行。
: 在代码段中的每条指令都应该是来源于可执行文件的。如
: 果给出一条指令的地址,请问有什么方法知道这条指令原
: 来是在可执行文件的那个位置(距离文件头的偏移量或者
: 其他信息)吗?可不可以就在这个可执行文件里面加入什
: 么系统调用来完成?
: 谢谢谢谢,万分感谢!
: //bow


--
I have never believed that we ought to deny discomfort and pain and evil: I
have merely thought that it is far better to `greet the unknown with a cheer,'
                                                       --- E. H. P.
※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 211.154.94.30]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店