2010-02-26 38 views
1

Si vous avez un fichier objet, comment obtenez-vous la valeur initialisée d'une variable globale dans le segment de données de ce fichier objet? Par exemple, disons que je l'ai fait ce qui suit:Comment obtenez-vous la valeur initialisée d'une variable globale à partir d'un fichier objet?

# 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 

Cela me dit que foo est à l'offset 0x48 dans le segment de données avec la taille 4, mais comment puis-je obtenir la valeur réelle initialisée il obtient à la charge?

Répondre

3

figured it out:

objdump -j.data -s bar.o 

Cela donne une hexdump du segment de données, le rendant facile à rechercher des valeurs. J'ai utilisé objdump -d avant de désassembler le code, mais l'option -s est nouvelle pour moi.