Почему смещение в заголовке программы LOAD не соответствует смещению в адресном пространстве?Linux

Ответить Пред. темаСлед. тема
Anonymous
 Почему смещение в заголовке программы LOAD не соответствует смещению в адресном пространстве?

Сообщение Anonymous »

У меня есть такой заголовок ELF:

Код: Выделить всё

  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align

LOAD           0x002dd0 0x0000000000003dd0 0x0000000000003dd0 0x000250 0x000258 RW  0x1000
Который должен сопоставлять эти разделы:

Код: Выделить всё

.init_array .fini_array .dynamic .got .got.plt .data .bss
Когда я читаю программу readelf -l, я вижу, что этот раздел действительно начинается с адреса 0x002dd0:

Код: Выделить всё

Section Headers:
[Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
(...)
[20] .init_array       INIT_ARRAY      0000000000003dd0 002dd0 000008 08  WA  0   0  8
[21] .fini_array       FINI_ARRAY      0000000000003dd8 002dd8 000008 08  WA  0   0  8
[22] .dynamic          DYNAMIC         0000000000003de0 002de0 0001e0 10  WA  7   0  8
[23] .got              PROGBITS        0000000000003fc0 002fc0 000028 08  WA  0   0  8
[24] .got.plt          PROGBITS        0000000000003fe8 002fe8 000028 08  WA  0   0  8
[25] .data             PROGBITS        0000000000004010 003010 000010 00  WA  0   0  8
[26] .bss              NOBITS          0000000000004020 003020 000008 00  WA  0   0  1
Но когда я запускаю процесс и смотрю вывод pmap, он показывает, что смещение этого сегмента начинается с 0x003000 вместо 0x002dd0:
р>

Код: Выделить всё

         Address Perm   Offset   Inode Size Rss Anonymous  Mapping
63a2b2ccb000 rw-p 00003000 5243856    4   4         4  program
Почему? Если он начинается с 0x003000, не отсутствуют ли данные в диапазоне 0x002dd0-0x002fff?

Подробнее здесь: https://stackoverflow.com/questions/788 ... ress-space
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»