Как определить, является ли функция-член C ++ статической при использовании GNU gcc -finstrument-functions - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь создать инструмент (используя linux gcc), который будет генерировать трассировки функций, которые затем можно будет использовать для создания диаграмм последовательности UML.В настоящее время инструменты работают хорошо, однако они путаются при работе со статическими функциями-членами C ++.Что я делаю, так это регистрирую: имя_функции, имя_класса и "this_pointer" по всем вызовам __cyg_profile_func_enter() и __cyg_profile_func_exit().Это позволяет мне позже сгенерировать UML-диаграмму всех взаимодействий объектов.

Проблема заключается в том, что статические функции-члены не имеют "this указатель", и поэтому моя логика возвращает нежелательную информацию, потому что яне знает, что функция статическая.Можно ли как-то определить во время выполнения, что вызывающая функция является статической с помощью некоторой функции поиска в таблице символов или API?

Или, может быть, предложить другой метод.

Спасибо, Стюарт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...