【发布时间】:2012-06-07 23:01:48
【问题描述】:
简单的 C 文件:
#include <stdio.h>
int main(){
printf("Hello World");
return 0;
}
编译代码后,使用readelf -a a.out,elf信息如下:
问题:
- 多个部分出现在不同的段中,例如第 2 段和第 3 段中的 interp 部分。一个部分如何出现在多个段中?
- 第二个段的地址从 0x8048134 开始,但第三个 LOAD 段从 0x8048000 开始,内存大小为 0x004d0。那么这两个部分重叠?两个段如何在内存中重叠?
- 为什么程序头的偏移量和 viraddr 必须以页面大小为模一致?
【问题讨论】: