Николай Г.
601 сообщение
#15 лет назад
Предположим есть у нас указатель на какую-то функцию, для определенности, в C.
А еще есть желание взять всю эту функцию, и записать куда-нибудь, например в файл.
Можно ли, анализируя данные начиная с этого указателя одназначно определить конец функции? Если да, то как?
Виктор Т.
1036 сообщений
#15 лет назад
Не по теме: Если знать какой компилятор, то можно найти по стандартному прологу/эпилогу, иначе только дизассемблером с анализом всех ветвлений.

Ответ по теме: Теоретически - можно, практически - сложно и нафиг не нужно.
Николай Г.
601 сообщение
#15 лет назад
Компилятор GCC...
Ясно, спасибо.
А вообще - просто занимаемся сейчас вопросом сериализации различных данных... В связи с чем возник вопрос, каким образом можно сериализировать функции...
Тимур Ч.
300 сообщений
#15 лет назад
Если сделать схему "одна функция - одна длл", то можно
в противном случае опции типа inline function expansion или global optimization сведут на нет любую возможность отделить функцию
Тут М.
626 сообщений
#15 лет назад
Цитата ("dervinar"):
занимаемся сейчас вопросом сериализации различных данных

Вроде как функция уже не совсем данные? Может не стоит сериализовать код, тем более бинарный (т.е. привязанный к конкретному CPU)?