博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux应用程序地址布局,王明学learn
阅读量:4577 次
发布时间:2019-06-08

本文共 496 字,大约阅读时间需要 1 分钟。

              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 可执行程序文件名,可以查看文件中数据各段信息。

转载于:https://www.cnblogs.com/wmx-learn/p/5301677.html

你可能感兴趣的文章
【AS3代码】擦窗户效果(也就是流行的妄撮游戏)
查看>>
[bzoj 3289] Mato的文件管理
查看>>
Flutter学习笔记(五)
查看>>
Linux zip命令详解
查看>>
vSphere的exsi root密码忘记了
查看>>
svn的安装过程
查看>>
pure的bug记录2
查看>>
NSCopying简析
查看>>
python抓取51CTO博客的推荐博客的全部博文,对标题分词存入mongodb中
查看>>
oracle 用户 角色 权限
查看>>
P2083 找人
查看>>
MySQL 分区知识点(三)
查看>>
使用pipreqs生成项目依赖
查看>>
android 二维码生成
查看>>
sql server2008 R2安装总结
查看>>
linux命令行快捷键
查看>>
怎么拿到url地址?后的某个参数值
查看>>
android中如何在代码中直接设置View的layout_weight属性
查看>>
hdu 1853 Cyclic Tour(费用流OR二分图最佳匹配,5级)
查看>>
js 对url进行某个参数的删除,并返回url
查看>>