Расположение памяти исполняемого файла - PullRequest
2 голосов
/ 17 января 2011

При загрузке исполняемого файла сегменты, такие как код, данные, bss и т. Д., Должны быть помещены в память.Мне просто интересно, если кто-то может сказать мне, где на стандартном x86, например, библиотека libc находится.Это вверху или внизу памяти.Я думаю, что внизу, близко к коду приложения, то есть, это будет выглядеть примерно так:

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

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

App Code

----------

libc

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

Большое спасибо, Росс

1 Ответ

4 голосов
/ 17 января 2011

Зависит от капризов погрузчика.

В частности, в любой современной системе, которая использует ASLR , вы не можете предсказать, где в итоге окажется конкретная библиотека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...