【问题标题】:objdump/readelf get variables informationobjdump/readelf 获取变量信息
【发布时间】:2012-06-17 21:13:27
【问题描述】:

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

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

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

this link 的第 237 页上,我相信有一个示例说明如何获取有关类型的信息。这是一张图片:

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

【问题讨论】:

  • 你解决了吗?您是否只是想让您从readelf 更快地解析/提取信息?

标签: gcc objdump readelf debug-information


【解决方案1】:

您可以试试 Andy Wingo 的新 dltool 实用程序,它会为您完成所有 DWARF 信息的解析。

【讨论】:

  • 我需要在windows上解析它...我也许可以在windows上编译它,我会试试看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-14
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
相关资源
最近更新 更多