当Linux把程序加载到内存中的时候,Stack中是存储有一些预先的信息的。
Stack存在于内存中0xbfffffff附近,但是不会大于这个值。Stack是底朝上的,ESP指向最外面的元素。
· ESP所指向的最外面的元素是这个程序的参数个数,最少为1。比如运行./test这个程序,这唯一一个参数指的就是test。这是32bits的。
· 之上一行是一个地址,指向可执行的文件。也是32bits的。
· 再往上是几个参数的地址。全是32bits的。它们指向的参数是以NULL结尾的字符串。
· 再往上是一个32bits的0地址,表明参数地址的结束。
· 再往上(Address of environment variable 1 …)是环境变量参数的地址,有200个之多,比较长。它们表明Linux现在的环境状况。它们指向以NULL结尾的字符串。
· 再往上是一个32bits的0地址,表明环境变量参数的结束。