加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 有没有办法转储g编译程序的类布局

发布时间:2020-12-16 07:10:06 所属栏目:百科 来源:网络整理
导读:当用g编译时,-fdump-class-hierarchy以(或多或少)人类可读的格式导出程序的vtable.但是,生成的文件仅包含有关vtable的信息,但不包含有关类布局本身的信息.我想获得所有程序类的布局的完整列表. clang提供了-cc1 -fdump-record-layouts参数来实现这一目的.可
当用g编译时,-fdump-class-hierarchy以(或多或少)人类可读的格式导出程序的vtable.但是,生成的文件仅包含有关vtable的信息,但不包含有关类布局本身的信息.我想获得所有程序类的布局的完整列表.

clang提供了-cc1 -fdump-record-layouts参数来实现这一目的.可以使用-d1reportAllClassLayout调用MS编译器.有没有g开关这样做?

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读