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]

