Comment obtenez-vous la valeur initialisée d'une variable globale à partir d'un fichier objet?

StackOverflow https://stackoverflow.com/questions/2343828

Question

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 d'objet? Par exemple, dire que je l'ai fait ce qui suit:

# 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?

Était-ce utile?

La solution

figured it out:

objdump -j.data -s bar.o

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top