Как вы получаете инициализированное значение глобальной переменной из объектного файла? - PullRequest
1 голос
/ 26 февраля 2010

Если у вас есть объектный файл, как вы можете получить инициализированное значение глобальной переменной в сегменте данных этого объектного файла? Например, скажем, я сделал следующее:

# 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 имеет смещение 0x48 в сегменте данных с размером 4, но как мне получить фактическое инициализированное значение, которое оно получает при загрузке?

1 Ответ

3 голосов
/ 26 февраля 2010

Разобрался:

objdump -j.data -s bar.o

Это дает шестнадцатеричный дамп для сегмента данных, что облегчает поиск значений. Я раньше использовал objdump -d для дизассемблирования кода, но опция -s для меня нова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...