¿Cómo se obtiene el valor inicializado de una variable global a partir de un archivo de objeto?

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

Pregunta

Si usted tiene un archivo de objeto, ¿cómo obtener el valor inicializado de una variable global en el segmento de datos de ese archivo de objeto? Por ejemplo, digamos que he hecho lo siguiente:

# 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

Esto me dice que es foo en desplazamiento 0x48 en el segmento de datos con un tamaño de 4, pero ¿cómo puedo obtener el valor real inicializado obtiene tras la carga?

¿Fue útil?

Solución

lo descubrió:

objdump -j.data -s bar.o

Esto da una hexdump del segmento de datos, por lo que es fácil de buscar valores. He usado objdump -d antes de código de desmontar, pero la opción -s es nuevo para mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top