C / C ++编译器可以报告结构成员偏移量[重复]

Posted

技术标签:

【中文标题】C / C ++编译器可以报告结构成员偏移量[重复]【英文标题】:Can C/C++ compiler report struct member offset [duplicate] 【发布时间】:2010-05-25 03:41:21 【问题描述】:

可能重复:Layout of compiled objects

大家好。我想问一下,编译器(例如Visual C++)可以生成一个报告(.txt),告诉一个结构/所有结构的结构成员偏移量吗?

如果是这样,它对调试有很大帮助。例如,当您在调试器中阅读反汇编代码时,将偏移值与结构成员相关联会更容易。

此外,最好让编译器报告函数堆栈帧上每个局部变量的偏移量(例如,在 X86 机器上相对于 ebp 的偏移量)。

提前谢谢你。

【问题讨论】:

我设法挖掘了未记录的编译器开关,并将我的答案放在这里:***.com/questions/2138890/…。投票结束你的问题作为一个骗子。 【参考方案1】:

谢谢你,j_random_hacker,你为我的问题提供了一个非常可行的答案。

使用未记录的编译器选项

/d1reportSingleClassLayoutXXX 
/d1reportAllClassLayout 

(将 XXX 替换为类名)

让我们简要了解结构成员偏移量。

在 Visual C++ 8 SP1 上试过,OK。

我建议不要删除我的问题,以便于搜索具有相同问题的其他人。

【讨论】:

以上是关于C / C ++编译器可以报告结构成员偏移量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

C语言结构体里的成员数组和指针

C中结构体内有一个成员是二维数组,可以直接赋值另一个一维数组吗?

c语言中:结构体的内存分配

c语言中:结构体的内存分配

c语言结构体能否整体赋值

我可以用吗 。作为gnu c结构中的成员限定符[关闭]