gpt4 book ai didi

c++ - 有什么方法可以转储 g++ 编译程序的类布局

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:17:11 28 4
gpt4 key购买 nike

当使用 g++ 编译时,-fdump-class-hierarchy 以(或多或少)人类可读的格式导出程序的虚表。但是,生成的文件只包含有关 vtable 的信息,有关类布局本身的信息。我想获得我所有程序类布局的综合列表。

clang 提供了 -cc1 -fdump-record-layouts 参数来实现这一点。可以使用 -d1reportAllClassLayout 调用 MS 编译器。是否有任何 g++ 开关可以执行此操作?

最佳答案

如果程序编译时带有调试信息,您可以使用pahole 从调试信息中转储struct 和vtable 布局:

g++ -ggdb3 -c program.cpp
pahole program.o

请注意,g++ 只会为程序中实际使用的结构生成调试信息,因此您可能必须添加一些虚拟函数来创建或以其他方式使用您的结构类型的对象。

关于c++ - 有什么方法可以转储 g++ 编译程序的类布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26468315/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com