Pahole не показывает классы в пространствах имен

Я пытаюсь использовать pahole проанализировать структуру памяти программы на C ++, в которой есть несколько классов внутри пространств имен. pahole перечисляет только классы в глобальном пространстве имен. Есть ли возможность также перечислить другие классы?

MWE:

namespace ns {
class Thing {
public:
int y;

Thing(int y) : y(y) { }
};
};

class Thong {
public:
int z;

Thong(int z) : z(z) { }
};

int main(void) {
ns::Thing x(1);
Thong a(2);
return x.y + a.z;
}

g++ -ggdb3 test.cpp
pahole --version; pahole a.out

v1.10
class Thong {
public:

int                        z;                    /*     0     4 */
void Thong(class Thong *, int);/* size: 4, cachelines: 1, members: 1 */
/* last cacheline: 4 bytes */
};

0

Решение

Покопавшись в источнике, я узнал, что --show_private_classes опция также печатает классы, определенные в пространствах имен.

Квалификатор пространства имен удаляется из имени класса (ns1::foo а также ns2::foo оба печатаются как просто foo) но этого достаточно для моего варианта использования.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]