【发布时间】:2014-10-20 14:39:28
【问题描述】:
使用 g++ 编译时,-fdump-class-hierarchy 以(或多或少)人类可读的格式导出程序的 vtable。但是,生成的文件仅包含有关 vtable 的信息,但不包含有关类布局本身的信息。我想获得我所有程序类的布局的完整列表。
clang 提供了 -cc1 -fdump-record-layouts 参数来实现这一点。可以使用 -d1reportAllClassLayout 调用 MS 编译器。是否有任何 g++ 开关可以做到这一点?
【问题讨论】:
-
Clang 和 g++ 产生二进制兼容的输出,不是吗?所以如果 Clang 可以生产它...
-
描述类布局的人类可读输出与输入有何不同?您需要的是填充和对齐信息,还是扁平化基类和成员子对象的东西?
-
@Useless 类布局可能分布在许多不同的文件中,并且混合了多重继承和虚拟继承,您确实必须对编译器内部有一些了解才能弄清楚出来。
-
@JamesKanze 哦,当然 - 我只是在询问动机,而不是质疑实用程序。
标签: c++ variables gcc g++ vtable