想要从elf文件获取枚举信息。无法从.rodata或.data或.bss部分获取信息。
1,g++ -o t test.cc
2,objdump -s -j .rodata t
或objdump -s -j .data t
没有显示有关枚举成员数据的任何信息。
gcc版本:4.7.2和linux centos6
namespace test {
namespace error {
enum {
kUnkown = -1,
kSuccess = 0,
kInvalidParams = 1,
kDBInitFailed = 2,
kTimeout = 3,
kAttributeInitFailed = 4,
kPageCacheInitFailed = 5,
kUpdate = 9001,
};
} // namespace error
}
int main()
{
return 0;
}
答案 0 :(得分:1)
想要从elf文件获取枚举信息。无法从.rodata或.data或.bss部分获取信息。
enum
是类型声明,而不是对象。内存中没有任何内容。
(struct
或union
或大多数class
都适用。)
如果在启用调试符号(-g
)的情况下编译程序,则可能会有一些引用enum
的调试信息。但是,该数据不会在运行时使用。