История изменений
Исправление SZT, (текущая версия) :
То есть вы предлагаете полностью повторить логику кода my_function() в my_function_DBG() ?
Как вариант. Можно придумать еще что-нибудь, например есть такая фича в компиляторе GCC: https://gcc.gnu.org/onlinedocs/gcc/Return-Address.html - по адресу возврата можно узнать, из какого места вызывалась та или иная функция (при условии что там ничего не заинлайнилось - When inlining the expected behavior is that the function returns the address of the function that is returned to. To work around this behavior use the noinline function attribute.) и таким образом сделать особенное поведение только для тех вызовов func1()..func(3), которые были произведены из какой-то конкретной функции.
Еще есть Kpatch, kGraft, Ksplice которые тоже могут быть использованы для замены одной функции другой
Исходная версия SZT, :
То есть вы предлагаете полностью повторить логику кода my_function() в my_function_DBG() ?
Как вариант. Можно придумать еще что-нибудь, например есть такая фича в компиляторе GCC: https://gcc.gnu.org/onlinedocs/gcc/Return-Address.html - по адресу возврата можно узнать, из какого места вызывалась та или иная функция (при условии что там ничего не заинлайнилось - When inlining the expected behavior is that the function returns the address of the function that is returned to. To work around this behavior use the noinline function attribute.) и таким образом сделать особенное поведение только для тех вызовов func1()..func(3), которые были произведены из какой-то конкретной функции.
Еще есть Kpatch, kGraft, Ksplice которые тоже для этого могут подойти