[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Про адресное пространство.



On 2013.01.10 at 13:22:42 +0400, Dmitrii Kashin wrote:

> 
> Сегодня игрался с gdb и обнаружил интересную вещицу.
> 
> Я запустил 2 экземпляра gdb с одним и тем же исполняемым файлом (назовем
> его - test). Дизассемблировал функцию main(), и обнаружил, что адреса в
> обоих экземплярах gdb - совпадают.
> 
> Походу, я что-то не так понимаю. Я полагал, что когда я запускаю процесс
> - ему выделяется свое адресное пространство. И таким образом, если я
> запущу два экземпляра программы 'test', адрес функции main первого
> экземпляра должен отличаться от адреса одноименной функции второго
> экземпляра, т.к. они находятся в разных адресных пространствах.

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

Вот если бы два экземпляра программы были загружены в одно адресное
пространство, то пришлось бы одним и тем же объектам разных экземпляров
располагаться по разным адресам.

А так, имеем в распоряжении два одинаковых адресных пространства. С
адресами от 0 до 4 миллиардов. Грузим туда одинаковым загрузчиком
одинаковые исполняемые образы. Естественно, что результат получается
одинаковый.


Reply to: