2016-11-08 2 views
0
const int hello= 0x1111; 
int main(){ 
} 

Я строй очень простой кода и скомпилировать его сВ C, найти значение переменного глобальных константного при компиляции

gcc t.c -g -o t.out 

Могу ли я использовать objdump или нм или любые инструменты, чтобы убедиться, что константное значение переменного ? Я всегда найти адрес переменной "привет", но не может найти значение

Любой человек может помочь мне, спасибо большое

+0

Я не понимаю, о чем вы просите. –

+0

показать результат –

ответ

1

Пример кода

const int hello = 0xdeadbeef; 
int main() 
{ 
    return 0; 
} 

компилировать с

gcc-4.9 -W -Wall -Wextra -pedantic -std=c11 fortests.c -o fortests 

сбрасывать содержимое с

objdump -xDSs fortests | less 

(сбросив немного слишком много, но ничего не стоит, так что ... Мех ...) и поиск hello

0000000000400594 g  O .rodata  0000000000000004    hello 

Это означает, что она находится в разделе .rodata. Мы явно просили objdump перечислить содержимое всех разделов, так что здесь мы имеем значение 0xdeadbeef.

Contents of section .rodata: 
    400590 01000200 efbeadde     ........ 
        ^^^^^^^^ 
      here |||||||| 

И теперь должно быть ясно, почему у вас возникли проблемы с его поиском.

 Смежные вопросы

  • Нет связанных вопросов^_^