Перейти в группу новостей: 
 
Тема Указатель на вызывающую функцию
Написал Alexei <webmaster@microsoft.com>
Дата 3 декабря 2018 в 08:38:07
Группа новостей kraft.programming

Всем привет.
Хочу погонять инструментирование вызовов функций в С-шном коде,
компилятор gcc, линукс.
Для инструментирования вызываются функции (вызываются, соответственно,
сразупосле входа в каждую функцию и перед выходом из неё):
void __cyg_profile_func_enter (void *this_fn, void *call_site)
__attribute__((no_instrument_function));
void __cyg_profile_func_exit (void *this_fn, void *call_site)
__attribute__((no_instrument_function));
В них передаётся пара указателей: указатель на функция, которая была
вызывана и указатель на место, откуда она была вызывана.
Если указатель на функцию я могу преобразовать в имя (чтобы наблюдать,
какая функция была вызывана), то вот какая функция вызывала ту функцию,
которая была вызывана, я не могу понять.
Наверное, можно развернуть кадры стека и узнать, но я не знаю, как это
сделать. Может быть, кто-то подскажет, как в в функции
__cyg_profile_func_enter() раскрутить стек вызовов на пару шагов назад ?
Спасибо.
Все сообщения в этой теме
 
#  Указатель на вызывающую функцию Alexei 3 декабря 2018 в 08:38:07
#  Re: Указатель на вызывающую функцию Alexei 3 декабря 2018 в 10:14:39



Время выполнения скрипта: 0.00038504600524902 сек.