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

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



Эти адреса никак не могут относиться к физической памяти.

10.01.2013, 13:58, "Dmitrii Kashin" <freehck@gmail.com>:
> Victor Wagner <vitus@wagner.pp.ru> writes:
>
>>  On 2013.01.10 at 13:22:42 +0400, Dmitrii Kashin wrote:
>>>  Сегодня игрался с gdb и обнаружил интересную вещицу.
>>>
>>>  Я запустил 2 экземпляра gdb с одним и тем же исполняемым файлом (назовем
>>>  его - test). Дизассемблировал функцию main(), и обнаружил, что адреса в
>>>  обоих экземплярах gdb - совпадают.
>>>
>>>  Походу, я что-то не так понимаю. Я полагал, что когда я запускаю процесс
>>>  - ему выделяется свое адресное пространство. И таким образом, если я
>>>  запущу два экземпляра программы 'test', адрес функции main первого
>>>  экземпляра должен отличаться от адреса одноименной функции второго
>>>  экземпляра, т.к. они находятся в разных адресных пространствах.
>>  Именно потому, что каждой программе выделяется своё адресное
>>  пространство, адреса имеют полное право совпадать.
>>
>>  Вот если бы два экземпляра программы были загружены в одно адресное
>>  пространство, то пришлось бы одним и тем же объектам разных экземпляров
>>  располагаться по разным адресам.
>
> В том-то все и дело, что, как мне кажется, совпадают именно физические
> адреса. Вот конкретный пример:
>
> (gdb) disassemble main
> Dump of assembler code for function main:
>    0x080483dc <+0>:    push   %ebp
>    0x080483dd <+1>:    mov    %esp,%ebp
>    0x080483df <+3>:    sub    $0x10,%esp
>    0x080483e2 <+6>:    movl   $0x0,-0x4(%ebp)
>    0x080483e9 <+13>:   movl   $0x3,-0x4(%ebp)
>    0x080483f0 <+20>:   mov    $0x0,%eax
>    0x080483f5 <+25>:   leave
>    0x080483f6 <+26>:   ret
> End of assembler dump.
>
> Я посчитал, что 0x08000000 - это 128 MiB.
> Мне сдается, что это адрес физической памяти, а не виртуальной.
>
> Но именно эти адреса совпадают. И если я запускаю второй gdb - я увижу
> тот же 0x080483dc. Почему - не понятно. Может быть, это какой-то
> префикс, и мна первые две цифры адреса мне смотреть не надо?
>
> --
> **************************************
> *  jabber:  freehck@jabber.mipt.ru   *
> *   Registered linux user #546240    *
> **************************************
>
> --
> To UNSUBSCRIBE, email to debian-russian-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Archive: [🔎] 87d2xdqs0t.fsf@ws00.freehck.ru">http://lists.debian.org/[🔎] 87d2xdqs0t.fsf@ws00.freehck.ru


Reply to: