Эти адреса никак не могут относиться к физической памяти.
10.01.2013, 13:58, "Dmitrii Kashin" <[email protected]>: > Victor Wagner <[email protected]> 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: [email protected] * > * Registered linux user #546240 * > ************************************** > > -- > To UNSUBSCRIBE, email to [email protected] > with a subject of "unsubscribe". Trouble? Contact [email protected] > Archive: http://lists.debian.org/[email protected] -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

