Эй, я пытаюсь обернуть функцию в моей программе без использования LD_PRELOAD.
У меня есть две функции с одинаковой подписью:
void someFunc () {
puts ("someFunc");
}
void someFunc_wrapper () {
puts ("someFunc_wrapper");
}
И я хочу перенаправить любой вызов функции в someFunc с помощью вызова функции-оболочки.
Конечно, я мог бы сделать это с помощью определения макросов или поместить функцию-обертку в общую библиотеку, а затем вызвать программу следующим образом:
LD_PRELOAD=./mylib.so my_program
Однако я хочу перенаправить вызовы функций во время выполнения без изменения вызова программы.
Как я понимаю, должна быть возможность перенаправить эти вызовы, изменив таблицу символов исполняемого файла во время выполнения.
Любая помощь будет оценена :)