7、Linux应用程序地址布局

程序构成

在学习Linux应用程序开发时,经常会遇到如下概念:

    代码段、数据段、BSS段(Block Started by Symbol,又名:未始化数据段) 、堆(heap)和栈(stack)。始化数据段) 、堆(heap)和栈(stack)。而这些部分也是构成Linux应用程序的重要组成部。

1.从低地址到高地址分别为:代码段、数据段、BSS段、堆、栈

 

2.堆向高内存地址生长3.栈向低内存地址

数据存放

1.代码段:代码,全局常量(const)、字符串常量

2.数据段:全局变量(初始化以及未初始化的)、静态变量(全局的和局部的、初始化的以及未初始化的)

3.堆:动态分配的区域3.堆:动态分配的区域

4.栈:局部变量(初始化以及未初始化的,但不包含静态变量)、局部只读变量(const)

 

利用     readelf –S 程序名readelf –S 程序名分析     BSS

 

posted @ 2019-02-21 00:10  earwen  阅读(150)  评论(0编辑  收藏  举报

致力于ARM及大数据应用开发&研究工作,专注ARM Cortex A系列开发和大数据前沿技术与趋势。

Font Awesome | Respond.js | Bootstrap中文网