可执行的内存布局

时间:2011-01-16 21:51:11

标签: c memory memory-management

加载可执行文件时,需要将代码,数据,bss等段放在内存中。我只是想知道,如果有人能告诉我在标准x86上的位置,例如放置了libc库。那是在记忆的顶部还是底部。我的猜测是在底部,接近应用程序代码,即,在这里看起来像这样:

---------  0x1000
Stack
  |
  V

  ^
  |
Heap
----------
Data + BSS
----------

App Code

----------

libc

---------- 0x0000

非常感谢, 罗斯

1 个答案:

答案 0 :(得分:4)

这取决于装载机的奇思妙想。

特别是,在任何使用ASLR的现代系统中,您无法预测特定库的最终位置。

相关问题