我需要从编译的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命令,那就太好了。
发布于 2012-06-26 22:01:44
您可以尝试Andy的新dltool实用程序,它为您解析所有矮人信息。
https://stackoverflow.com/questions/11039843
复制相似问题