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?

Foi útil?

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
scroll top