Comment obtenez-vous la valeur initialisée d'une variable globale à partir d'un fichier objet?
-
23-09-2019 - |
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?
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