¿Cómo se obtiene el valor inicializado de una variable global a partir de un archivo de objeto?
-
23-09-2019 - |
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?
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