如何从对象文件中获取全局变量的初始化值?

时间:2010-02-26 18:17:40

标签: global-variables binutils object-files

如果您有目标文件,那么如何在该目标文件的数据段中获取全局变量的初始化值?例如,假设我已完成以下操作:

# I'm interested in the variable foo inside bar.o in libbar.a:
$ ar -x libbar.a bar.o
$ nm --print-size bar.o | grep foo
00000048 00000004 D foo

这告诉我foo在大小为4的数据段中位于偏移量0x48,但是如何获得它在加载时获得的实际初始化值?

1 个答案:

答案 0 :(得分:3)

想出来:

objdump -j.data -s bar.o

这给出了数据段的hexdump,使得查找值变得容易。我之前使用objdump -d来反汇编代码,但-s选项对我来说是新的。