Gcc objdump/readelf获取变量信息

Gcc objdump/readelf获取变量信息,gcc,objdump,readelf,debug-information,Gcc,Objdump,Readelf,Debug Information,我需要从已编译的c程序中获取有关全局变量的信息。我问了一个类似的问题 我现在遇到的问题是,我试图提取变量信息的程序非常大,只需4秒钟就可以得到文本中的树(readelf-w[I]file.out)。然后我必须分析来回跳跃的树,以便到达我需要的地方。例如,如果变量类型为const unsigned char*volatile MyVariable,则我必须导航到树的5个不同节点,如果程序包含1000个变量,则需要一段时间才能获得所需的内容 所以我的问题是如何更好地使用readelf命令来实现我所需

我需要从已编译的c程序中获取有关全局变量的信息。我问了一个类似的问题

我现在遇到的问题是,我试图提取变量信息的程序非常大,只需4秒钟就可以得到文本中的树(
readelf-w[I]file.out
)。然后我必须分析来回跳跃的树,以便到达我需要的地方。例如,如果变量类型为
const unsigned char*volatile MyVariable
,则我必须导航到树的5个不同节点,如果程序包含1000个变量,则需要一段时间才能获得所需的内容

所以我的问题是如何更好地使用readelf命令来实现我所需要的。
readelf-w[i]file.out
命令为我提供了所需的更多信息(每个函数、子例程、局部变量等)。例如,我使用
readelf-s--wide file.out
命令仅获取变量,而不是查看该命令的输出以获取全局变量。该命令只会给我变量的名称,因此我仍然需要查看树中的变量是否为整数

在第237页的我相信有一个例子,如何获得有关类型的信息,例如。这是一张照片:


我花了大约15秒来解析我需要的东西,但仍然有几个bug。如果我不必重新发明轮子,更好地使用readelf命令,那就太好了

你可以试试安迪·温戈(Andy Wingo)的新工具,它可以为你解析所有矮人信息。

我需要在windows上解析它。。。我可能可以在windows上编译,我会试试。你解决了这个问题吗?您只是想让您从
readelf
中解析/提取信息的速度更快吗?