第四章
- 在linux下,ELF可执行文件默认从地址 0x08048000开始分配。
- C++的全局对象的构造函数在main之前被执行,C++全局对象的析构函数在main之后被执行。
ELF文件定义了两种特殊的段:
- .init: 该段里保存的是可执行指令,它构成了进程的初始化代码。因此,当一个程序开始运行时,在main函数被调用之前。Glibc的初始化部分安排执行这个段中的代码。
- .fini:该段保存着进程终止代码指令,因此,当一个程序的main函数正常退出时,Glibc会安排执行这个段中的代码。 利用这两个段的特性,C++的全局构造和析构函数就由此实现。
TAG
4.6