Come si ottiene il valore inizializzato di una variabile globale di un file oggetto?
-
23-09-2019 - |
Domanda
Se si dispone di un file oggetto, come si fa a ottenere il valore inizializzato di una variabile globale nel segmento di dati di quel file oggetto? Ad esempio, dire che ho fatto la seguente:
# 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
Questo mi dice che è foo
all'offset 0x48 nel segmento di dati con dimensioni 4, ma come faccio a ottenere il valore reale inizializzato ottiene su di carico?
Soluzione
capito:
objdump -j.data -s bar.o
Questo dà un hexdump del segmento di dati, rendendo più semplice per cercare valori. Ho usato objdump -d
prima di smontare il codice, ma l'opzione -s
è nuovo per me.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow