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: