什么是Linux相当于MSVC ++的选项/ d1reportSingleClassLayout?

时间:2013-04-11 14:02:43

标签: linux c++

我正在将开发转移到Linux但我无法找到如何在g ++或clang ++下从MSVC ++获得类似于/ d1reportSingleClassLayout的输出。如果这些编译器没有这样的功能,是否有提供类似可视化的外部工具?

3 个答案:

答案 0 :(得分:7)

您需要使用调试信息(-g选项)编译该文件,然后使用pahole显示结构布局。 pahole包裹通常提供dwarves $ g++ -ggdb -c -o myfile.o myfile.cpp $ pahole -C MyClass myfile.o class MyClass { public: int ()(void) * * _vptr.MyClass; /* 0 4 */ int i; /* 4 4 */ const char * c; /* 8 4 */ void MyClass(class MyClass *, const class MyClass &); void MyClass(class MyClass *); virtual void ~MyClass(class MyClass *, int); /* size: 12, cachelines: 1, members: 3 */ /* last cacheline: 12 bytes */ }; ; source; on GitHub}。

-C

pahole选项允许您选择要检查的类/结构。

如果您无权访问readelf -wi myfile.o,则可以从eu-readelf -winfo myfile.opahole获取相同信息,而这种信息的可读性较差。论文in Ubuntu与其他dwarves工具一起描述了{{1}}。

答案 1 :(得分:1)

你也可以with the Clang frontend

答案 2 :(得分:0)

g ++支持-fdump-class-hierarchy怎么样?