zoukankan      html  css  js  c++  java
  • linux应用程序地址布局,王明学learn

                  linux应用程序地址布局

      在学习Linux应用程序开发时,经常会遇到如下概念:代码段、数据段、BSS段(Block Started by Symbol,又名:未初始化数据段)、堆(heap)和栈(stack)。而这些部分也是构成Linux应用程序的重要组成部分。

    一、内存布局

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

      2.堆向高内存地址生长

      3.栈向低内存地址生长

     

    二、数据存放

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

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

        3.堆:动态分配的区域

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

    三、利用readelf –S 程序名   分析BSS段

        linux中编译出的可执行文件后缀为.elf  执行readelf  -S 可执行程序文件名,可以查看文件中数据各段信息。

  • 相关阅读:
    毕设2020.02.02
    架构师眼中的高并发架构
    云时代架构读后感二
    以《淘宝网》为例,描述质量属性六个常见场景
    《架构漫谈》读后感
    云时代架构读后感一
    暑假周总结报告08
    暑假周总结报告07
    暑假周总结报告06
    假期周总结报告05
  • 原文地址:https://www.cnblogs.com/wmx-learn/p/5301677.html
Copyright © 2011-2022 走看看