反转偏移量/按偏移量获取元素的名称

Reverse offsetof / Get name of element by offset

本文关键字:偏移量 元素 获取      更新时间:2023-10-16

给定C++结构中元素的偏移量,如何在不手动计数的情况下找到其名称/类型?当解码ASM码时,这将特别有用,其中这种偏移是经常使用的。理想情况下,该工具将解析一个C(++)头文件,然后给出答案。感谢您的指点:)

一个这样的工具可能是编译器本身(使用与生成代码相同的ABI相关标志)。创建一个包含头文件的小程序,然后打印应用于每个结构的成员的offsetof的结果。然后,您将有一个合适的查找表,您可以手动引用该表,或者将其用作您可能编写的另一个工具的输入。

自动生成上面的程序可能是可能的(取决于头的复杂性)(您可能希望首先通过C预处理器运行头,以扩展宏并选择正确的条件分支)。