Определение размера процедуры на си

Тема в разделе "WASM.ZEN", создана пользователем Android, 2 авг 2006.

  1. KAdot

    KAdot New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2005
    Сообщения:
    38
    а зачем в начало вставлять? адес начала функции всегда известен

    вот так, короче говоря, я делаю:
     
  2. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    ECk
    Вообще может и получиться. Если функция _сама_ будет возвращать свой размер, подсчитывая его внутри себя :)

    crypto
    Этот способ сработает только на функциях с одной точкой выхода в самом конце функции.
     
  3. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    2CyberManiac
    А ты знаешь примеры, когда компайлер порождает ветвление (кроме упомянутого мной примера jmp в конце процедуры) в конце функции - типа несколько jmp?
     
  4. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    crypto
    Я видел функции, в которых выход в виде mov eax,.../retn был в нескольких точках. А Call $+4 должен отработать именно поле последнего значимого оператора функции, чтобы померить ее размер.
     
  5. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    2CyberManiac
    Понял, что ты имел в виду. В таком случае можно посоветовать автору топика пользоваться операторами goto и иметь только одну точку выхода в конце функции.
     
  6. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    >IceStudent
    >Обычно так и делают, хотя можно переопределить порядок функций в опциях линкера.

    Какой формат файла в котором указан порядок функций?
     
  7. Android

    Android New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    183
    Адрес:
    Ukraine
    Разобрался, перед именем файла должен быть символ @
     
  8. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    _BC_
    На ренге "клянчилось" описание сишных структур, используемых обработчиком исключений. К сабжу это вообще не имеет никакого отношения.
     
  9. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    не помню, возможно ;)