2010-02-26 4 views
1

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

# 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, но как я могу получить фактическую инициализирован значение, которое он получает от нагрузки?

ответ

3

Фигурного это:

objdump -j.data -s bar.o 

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

 Смежные вопросы

  • Нет связанных вопросов^_^