Не можете понять значение «Выкл» раздела в выводе readelf? Это смещение от «Адрес»?

Вот вывод readelf -a test.elf

Section Headers:
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .text             PROGBITS        0000000040000000 010000 00007c 00  AX  0   0  8
  [ 2] .rodata           PROGBITS        0000000040000080 010080 000016 00   A  0   0  8
  [ 3] .debug_info       PROGBITS        0000000000000000 010096 0000af 00      0   0  1
  [ 4] .debug_abbrev     PROGBITS        0000000000000000 010145 000086 00      0   0  1
  [ 5] .debug_aranges    PROGBITS        0000000000000000 0101cb 000030 00      0   0  1

Раздел .text начинается с адреса 0x40000000. С помощью отладчика я мог видеть, что значение ПК начинается с 0x40000000, а код — это startup.s, который должен быть там. Но я не уверен, почему значение «Выкл.» для этого раздела равно 0x10000. Что означает это значение «Выкл.»? Адреса и размера недостаточно для раздела?


person Chan Kim    schedule 24.02.2021    source источник
comment
Смещение — это расположение этого сегмента в файле.   -  person Sami Kuhmonen    schedule 24.02.2021
comment
@SamiKuhmonen А, понятно. Спасибо. если вы сделаете это ответом, я выберу его.   -  person Chan Kim    schedule 24.02.2021


Ответы (1)


Поле «Смещение» указывает расположение этого сегмента в файле. Здесь сегмент .text начинается с адреса 0x10000 и имеет длину 0x7c байт, затем следующий сегмент .rodata начинается с адреса 0x10080 и т. д.

person Sami Kuhmonen    schedule 24.02.2021