gpt4 book ai didi

linux - 什么是 Linux 等同于 MSVC++ 的选项/d1reportSingleClassLayout?

转载 作者:IT王子 更新时间:2023-10-29 00:26:41 25 4
gpt4 key购买 nike

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

最佳答案

您需要使用调试信息(-g 选项)编译文件,然后使用pahole 显示结构布局。 pahole 通常可以从 dwarves 包中获得( source ; on GitHub ; in Ubuntu )。

$ 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 */
};

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

如果您无权访问 pahole,您可以从 readelf -wi myfile.oeu -readelf -winfo myfile.o。论文https://www.kernel.org/doc/ols/2007/ols2007v2-pages-35-44.pdf描述 pahole 以及其他 dwarves 工具。

关于linux - 什么是 Linux 等同于 MSVC++ 的选项/d1reportSingleClassLayout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15951597/

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