Что такое релоки...

Тема в разделе "WASM.BEGINNERS", создана пользователем jaga, 21 фев 2009.

  1. jaga

    jaga Дмитрий

    Публикаций:
    0
    Регистрация:
    25 окт 2008
    Сообщения:
    33
    Адрес:
    Пермская обл.
    Глупый вопрос конечно... но так и не понял что это такое...
     
  2. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Это адреса в исполнимом файле (dll, exe(не всегда)) по которым находятся базозависимые адреса в командах переходов и обращений к памяти. Если файл загружен не по тому базовому адресу на который он рассчитан, то загрузчик пробегается по этим адресам и корректирует их.
     
  3. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    jaga
    Упрощая,Relocation table - это список адресов, которые требуют коррекции при загрузке файла.
     
  4. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    вот пример: mov eax,offset xxx. После компиляции у тебя в коде будет такое: mov eax,401012 (ну это к примеру выбрано такое смещение). НО! Это при условии, что твой файл будет загружен по базе 400000. А если этот адрес будет занят и файл будет загружен по 500000 к примеру? Получается, что mov eax,401012 указывает уже на неправильный адрес. Т.е. ссылку надо будет подкорректировать. Вот релоки и содержат указатели на то, что нужно подкорреткировать
     
  5. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    хотя достаточно того, что секция куда указывает команда окажется не на своем месте. (но такое чистый виндовый загрузчик обычно не творит, хотя там это предусмотрено)