When compiling with g++, -fdump-class-hierarchy exports the program's vtables in a (more or less) human-readable format. However, the resulting file only contains information about the vtable but not about the class layout itself. I'd like to get a comprehensive list of the layout of all my program's classes.
clang offers the -cc1 -fdump-record-layouts arguments to achieve this. The MS compiler can be called using -d1reportAllClassLayout. Is there any g++ switch that does this?
If the program is compiled with debugging information, you can use
pahole
to dump the struct and vtable layouts from the debugging information:Note that g++ will only generate debugging information for structs that are actually used within the program, so you may have to add some dummy functions to create or otherwise use objects of your struct types.