#include <stdio.h>
int main() {
printf("text at %p\n", main);
int c = getchar();
}
Скомпилировав вышеприведенный код в 64-битной VirtualBox Ubuntu и запустив его, я получаю:
текст в 0x55555555468a
pmap:
0000555555554000 4K rx-- a.out
Однако,
objdump -dj .text a.out | sed -n '/: /, / ^ $ / p':
000000000000068a :
68a: 55 pu sh% rbp
gdb a.out
Дамп кода ассемблера для функции main:
0x000000000000068a <+0>: pu sh% rbp
Совершенно разные адреса для связанных кодов?