Я знаю, что gcc имеет встроенные __function__
и связанные макросы, но из внешней функции, если мне передают указатель на функцию, есть ли способ получить имя этой функции из таблицы символов при компиляции время
В основном:
void* foo(){
profile_func(foo);
do_something();
}
profile_func(void* func){
printf("function is %s\n", NAME_OF(foo));
}
Конечно, я знаю, что таблица символов не является точным представлением функции, но этого достаточно для получения необходимой информации.
Я использую -finstrument_functions
, и это будет происходить в связанной функции __cyg_profile_func_enter()
. Я удивлен, что не могу найти, что кто-то уже сделал это (если не хватает моего google-fu)