打印
[嵌入式linux]

程序的地址如何分配的?它是怎么运行的?

[复制链接]
1536|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
leonlais|  楼主 | 2009-7-8 21:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题!!如果一个C程序由几个源文件组成,GCG -C 每个源文件,生成.O文件,这个时候应该还没分配地址吧?应该在把几个.O文件连接成一个可执行文件时,才分配地址。就是说把各个.o文件的segment 都组织起来(把相同的segment一一放好)才分配那么地址?到底是如何分配的呢? 从哪里(代码)开始分呢?

相关帖子

沙发
flanker| | 2009-7-9 09:33 | 只看该作者

1

main函数是总的entry。
比如从bash来启动程序,fork以后会检查pid,不一致则跳转到main的入口。
其它各个function和static variable应该是比较随机的次序的。当然如果加了-o3优化选项,有可能对cache miss做一定的优化吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

26

帖子

0

粉丝