LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 982|回复: 4

linux中共享对象加载到内存中的什么位置?

[复制链接]
发表于 2006-2-8 17:31:38 | 显示全部楼层 |阅读模式
请问:1。程序加载共享对象(动态链接库)时,被加载的函数在内存中如何放置?
      2。如何区分某一个系统调用是程序自身发起的还是程序调用的共享对象发起的?
发表于 2006-2-13 10:24:27 | 显示全部楼层
Post by nighthuman
请问:1。程序加载共享对象(动态链接库)时,被加载的函数在内存中如何放置?


可以使用ldd查看

      2。如何区分某一个系统调用是程序自身发起的还是程序调用的共享对象发起的?

检查调用时的ip基本可以判断
回复 支持 反对

使用道具 举报

发表于 2006-2-13 14:29:42 | 显示全部楼层
可以使用ldd查看

这个只可以查看.so文件在文件系统中的位置,不是被加载到内存中的位置吧!
回复 支持 反对

使用道具 举报

发表于 2006-2-14 15:04:35 | 显示全部楼层
Post by anuode
这个只可以查看.so文件在文件系统中的位置,不是被加载到内存中的位置吧!


嗯,可以看到默认的加载地址(不过只是虚拟地址,我想这也够了)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-18 10:34:21 | 显示全部楼层

谢谢

谢谢各位了,我通过找到系统调用对应的虚拟地址所在的vma->映像文件,
用映像文件的inode作为identity,作为so或者可执行文件的标识。
回复 支持 反对

使用道具 举报

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

本版积分规则

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