进程内存空间布局

参考文献:

Linux GUN C 程序观察 —— 罗秋明 清华大学出版社

1、进程的内存布局

        

  2、进程maps信息解读      

  • 第一列表示被分配使用的地址空间范围;
  • 第二列表示该地址区间的访问属性(r w x p),r:表示读, w:表示写, x:表示执行,p:表示私有;
  • 第三列给出对应磁盘文件偏移,也就是说一个内存区间可以映射到磁盘文件的一部分,映射的长度等于本段虚存空间长度;
  • 第四列表示映射文件的主设备和此设备号;
  • 第五列表示该文件的索引节点号;
  • 第六列表示文件路径,也就是记录该内存空间和磁盘文件之间的对应关系。

        如果内存空间的内容不是来源磁盘的,比如栈所占空间与malloc创建空间的内存区间,则第六列上没有文件路径名,第三、四和五列上均是0;

        00010000-00011000 区间是代码段区间, 00020000-00021000 区间是数据段区间;接下来的几段就是共享文件映射区,最后【stack】段表示用户堆栈区。

         

        如果在程序中新增malloc申请内存的操作,看一下/proc/pid/maps如何;

        如下,会新增【heap】段,此段就是堆区间;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值