Вы можете использовать опцию -fdump-class-hierarchy
в gcc, которая даст вам информацию vtable, однако вывод может быть очень многословным и трудным для чтения.
Например, с учетом следующих тривиальных классов:
class Base {
public:
virtual int method() = 0;
};
class Derived : public Base {
public:
int method() {
return 10;
}
};
соответствующий вывод
Vtable for Base
Base::_ZTV4Base: 3u entries
0 (int (*)(...))0
8 (int (*)(...))(& _ZTI4Base)
16 (int (*)(...))__cxa_pure_virtual
Class Base
size=8 align=8
base size=8 base align=8
Base (0x7f14c308ccc0) 0 nearly-empty
vptr=((& Base::_ZTV4Base) + 16u)
Vtable for Derived
Derived::_ZTV7Derived: 3u entries
0 (int (*)(...))0
8 (int (*)(...))(& _ZTI7Derived)
16 (int (*)(...))Derived::method
Class Derived
size=8 align=8
base size=8 base align=8
Derived (0x7f14c2ee7208) 0 nearly-empty
vptr=((& Derived::_ZTV7Derived) + 16u)
Base (0x7f14c308cd20) 0 nearly-empty
primary-for Derived (0x7f14c2ee7208)
Это должно дать вам представление о том, какие диапазоны адресов следует ожидать во время отладки и т. Д.