You can use the -fdump-class-hierarchy gcc option, which will give you vtable information, however the output can be very verbose and hard to read.
For example, given the following trivial classes:
class Base { public: virtual int method() = 0; }; class Derived : public Base { public: int method() { return 10; } };
corresponding conclusion
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)
This should give you an idea of ββwhat address ranges should be expected during debuggng, etc.
source share