Como você obtém o valor inicializado de uma variável global de um arquivo de objeto?
-
23-09-2019 - |
Pergunta
Se você possui um arquivo de objeto, como obtém o valor inicializado de uma variável global no segmento de dados desse arquivo de objeto? Por exemplo, digamos que eu fiz o seguinte:
# 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
Isso me diz que foo
está no deslocamento 0x48 no segmento de dados com o tamanho 4, mas como obtenho o valor inicial inicial que ele obtém após a carga?
Solução
Descobriu:
objdump -j.data -s bar.o
Isso fornece um hexdump do segmento de dados, facilitando a consulta de valores. Eu usei objdump -d
antes de desmontar o código, mas o -s
A opção é nova para mim.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow