Есть либа liba.so
В либе есть класс
//A.hpp
class A
{
public:
A();
void foo(double a);
private:
void bar(double b);
}
inline void A::foo(double a) {/*...*/}
//A.cpp
A::A() {}
void A::bar(double b) {}
Вопрос: можно ли получить список методов, которые использует бинарь?
Смотрел string binFile , но туда попадает приватные методы. (хотя в самом заголовке класса он только об'явлен, реализация в либе).
И инлайн методы туда не попадают.
Есть несколько десятков классов в бинаре и больше сотни в либе, перебирать руками долго будет.
Была идея передавать в опции компилятора бинаря -fno-inline -fno-inline-small-functions ; а в опции линкера -flto -fwhole-program , но не уверен насколько результат будет правильным.
UPD: попробовал с опциями, инлайн функции появились, но приватные не пропали.