我写了一个小程序来相加两个整数,在使用readelf -a 可执行文件名
命令时,它显示 elf header 中的入口点地址为:
Entry point address: 0x8048330
我的可执行文件如何在加载到内存之前就知道这个地址呢?elf_format.pdf
中说,这个成员提供了系统首先传输控制权的虚拟地址,从而启动进程。请问有人能解释一下这个语句的意思以及这里虚拟地址的含义是什么吗?另外,请告诉我,可执行文件从哪里获取了
0x8048330
作为入口点地址的值。仅供交叉检查,我编译了另一个程序,对于这个程序,入口点地址仍然是相同的值0x8048330
(两种情况下.text
段的偏移量都为0x330
)。