【发布时间】:2014-09-19 21:43:23
【问题描述】:
有没有办法在不实际运行代码的情况下获取特定类的所有成员变量的大小? (即没有 sizeof()、offset_of() 操作)
objdump 或 otool 是否有一些选项可以从中间目标文件(甚至最终的 ELF 文件)中提取这些信息?
编辑:
“我想做什么?”:
我注意到在我们的软件的两个版本之间,一个特定的类实例的大小膨胀了。这个类非常大,有很多很多的成员变量。有问题的类在两次构建之间没有变化,但它的成员变量却发生了变化。我试图找到罪魁祸首(这将是一种深度优先搜索,因为我必须继续深入挖掘每个成员变量,直到找到它)并且需要一种可扩展的方法来做这没有诉诸 printfs() 和差异。
【问题讨论】:
-
"没有运行代码" - 阅读编译器手册?
-
你可以在编译时使用
sizeof,所以不用printf。
标签: c++ static-analysis disassembly objdump