Libdwarf - 如何从ELF文件中提取变量的大小和类型

时间:2013-06-16 13:48:33

标签: elf dwarf

我想在Windows下使用libdwarf库在C中创建一个程序,该库能够提取有关作为输入给出的变量的信息。程序应该输出变量和类型的字节大小(unsigned,signed,float)。

到目前为止,我能够在Windows下编译库,但是我很难搞清楚所有的库函数。我需要的是一个函数,它接受一个字符串(变量的名称)并输出一个DIE偏移量。之后,我可以使用其他函数在给定的DIE偏移处提取type属性。

这样的功能是否存在?

1 个答案:

答案 0 :(得分:0)

Windows对可执行文件使用PE格式而不是ELF,因此在Windows下执行此操作似乎很奇怪。

使用libdwarf应该可以确定变量的大小和类型,但是库中没有运行在该高级别的函数。我相信你需要做的就是粗略 1.使用dwarf_next_cu_header迭代编译单元 2.使用dwarf_siblingof获取CU中的第一个DIE 3.走DIE树找到你需要的DIE 4.获取有关该DIE的信息