参考:http://blog.163.com/tao198352__4232/blog/static/8502064520105611157897/

:http://blog.chinaunix.net/uid-9543173-id-3571436.html

下面是一个Linux进程的标准的内存段布局:

maps文件内容输出:

[root@NGFW src]# cat -n /proc/10800/maps
     1  00400000-0040a000 r-xp 00000000 08:01 156019                             /secgate/bin/ddns
     2  00609000-0060a000 rw-p 00009000 08:01 156019                             /secgate/bin/ddns
     3  025e9000-0260a000 rw-p 00000000 00:00 0                                  [heap]
     4  7f3958000000-7f3958021000 rw-p 00000000 00:00 0
     5  7f3958021000-7f395c000000 ---p 00000000 00:00 0
     6  7f395c000000-7f395c021000 rw-p 00000000 00:00 0
     7  7f395c021000-7f3960000000 ---p 00000000 00:00 0
     8  7f3960000000-7f3960021000 rw-p 00000000 00:00 0
     9  7f3960021000-7f3964000000 ---p 00000000 00:00 0
    10  7f39643b8000-7f39643b9000 ---p 00000000 00:00 0
    11  7f39643b9000-7f3964db9000 rw-p 00000000 00:00 0
    12  7f3964db9000-7f3964dba000 ---p 00000000 00:00 0
    13  7f3964dba000-7f39657ba000 rw-p 00000000 00:00 0
    14  7f39657ba000-7f39657d0000 r-xp 00000000 08:01 114924                     /lib64/libresolv-2.12.so
    15  7f39657d0000-7f39659d0000 ---p 00016000 08:01 114924                     /lib64/libresolv-2.12.so
    16  7f39659d0000-7f39659d1000 r--p 00016000 08:01 114924                     /lib64/libresolv-2.12.so
    17  7f39659d1000-7f39659d2000 rw-p 00017000 08:01 114924                     /lib64/libresolv-2.12.so
    18  7f39659d2000-7f39659d4000 rw-p 00000000 00:00 0
    19  7f39659d4000-7f39659d9000 r-xp 00000000 08:01 114961                     /lib64/libnss_dns-2.12.so
    20  7f39659d9000-7f3965bd8000 ---p 00005000 08:01 114961                     /lib64/libnss_dns-2.12.so
    21  7f3965bd8000-7f3965bd9000 r--p 00004000 08:01 114961                     /lib64/libnss_dns-2.12.so
    22  7f3965bd9000-7f3965bda000 rw-p 00005000 08:01 114961                     /lib64/libnss_dns-2.12.so
    23  7f3965bda000-7f3965be6000 r-xp 00000000 08:01 114980                     /lib64/libnss_files-2.12.so
    24  7f3965be6000-7f3965de6000 ---p 0000c000 08:01 114980                     /lib64/libnss_files-2.12.so
    25  7f3965de6000-7f3965de7000 r--p 0000c000 08:01 114980                     /lib64/libnss_files-2.12.so
    26  7f3965de7000-7f3965de8000 rw-p 0000d000 08:01 114980                     /lib64/libnss_files-2.12.so
    27  7f3965df1000-7f3965df2000 ---p 00000000 00:00 0
    28  7f3965df2000-7f39667f2000 rw-p 00000000 00:00 0
    29  7f39667f2000-7f396c683000 r--p 00000000 08:01 1679546                    /usr/lib/locale/locale-archive
    30  7f396c683000-7f396da94000 rw-s 00000000 00:10 45305                      /dev/shm/sg_dbg_ring
    31  7f396da94000-7f396daaa000 r-xp 00000000 08:01 114911                     /lib64/libgcc_s-4.4.6-20110824.so.1
    32  7f396daaa000-7f396dca9000 ---p 00016000 08:01 114911                     /lib64/libgcc_s-4.4.6-20110824.so.1
    33  7f396dca9000-7f396dcaa000 rw-p 00015000 08:01 114911                     /lib64/libgcc_s-4.4.6-20110824.so.1
    34  7f396dcaa000-7f396dd92000 r-xp 00000000 08:01 1663052                    /usr/lib64/libstdc++.so.6.0.13
    35  7f396dd92000-7f396df92000 ---p 000e8000 08:01 1663052                    /usr/lib64/libstdc++.so.6.0.13
    36  7f396df92000-7f396df99000 r--p 000e8000 08:01 1663052                    /usr/lib64/libstdc++.so.6.0.13
    37  7f396df99000-7f396df9b000 rw-p 000ef000 08:01 1663052                    /usr/lib64/libstdc++.so.6.0.13
    38  7f396df9b000-7f396dfb0000 rw-p 00000000 00:00 0
    39  7f396dfb0000-7f396dfb2000 r-xp 00000000 08:01 114857                     /lib64/libdl-2.12.so
    40  7f396dfb2000-7f396e1b2000 ---p 00002000 08:01 114857                     /lib64/libdl-2.12.so
    41  7f396e1b2000-7f396e1b3000 r--p 00002000 08:01 114857                     /lib64/libdl-2.12.so
    42  7f396e1b3000-7f396e1b4000 rw-p 00003000 08:01 114857                     /lib64/libdl-2.12.so
    43  7f396e1b4000-7f396e237000 r-xp 00000000 08:01 114704                     /lib64/libm-2.12.so
    44  7f396e237000-7f396e436000 ---p 00083000 08:01 114704                     /lib64/libm-2.12.so
    45  7f396e436000-7f396e437000 r--p 00082000 08:01 114704                     /lib64/libm-2.12.so
    46  7f396e437000-7f396e438000 rw-p 00083000 08:01 114704                     /lib64/libm-2.12.so
    47  7f396e438000-7f396e586000 r-xp 00000000 08:01 155978                     /secgate/lib/libxml2.so
    48  7f396e586000-7f396e785000 ---p 0014e000 08:01 155978                     /secgate/lib/libxml2.so
    49  7f396e785000-7f396e791000 rw-p 0014d000 08:01 155978                     /secgate/lib/libxml2.so
    50  7f396e791000-7f396e792000 rw-p 00000000 00:00 0
    51  7f396e792000-7f396e7c4000 r-xp 00000000 08:01 155979                     /secgate/lib/libsg_xmldom.so
    52  7f396e7c4000-7f396e9c3000 ---p 00032000 08:01 155979                     /secgate/lib/libsg_xmldom.so
    53  7f396e9c3000-7f396e9d6000 rw-p 00031000 08:01 155979                     /secgate/lib/libsg_xmldom.so
    54  7f396e9d6000-7f396ea56000 rw-p 00000000 00:00 0
    55  7f396ea56000-7f396efc8000 r-xp 00000000 08:01 156399                     /secgate/lib/libhs-2.1.so
    56  7f396efc8000-7f396f1c7000 ---p 00572000 08:01 156399                     /secgate/lib/libhs-2.1.so
    57  7f396f1c7000-7f396f1cc000 rw-p 00571000 08:01 156399                     /secgate/lib/libhs-2.1.so
    58  7f396f1cc000-7f396f1e1000 r-xp 00000000 08:01 114701                     /lib64/libz.so.1.2.3
    59  7f396f1e1000-7f396f3e0000 ---p 00015000 08:01 114701                     /lib64/libz.so.1.2.3
    60  7f396f3e0000-7f396f3e1000 r--p 00014000 08:01 114701                     /lib64/libz.so.1.2.3
    61  7f396f3e1000-7f396f3e2000 rw-p 00015000 08:01 114701                     /lib64/libz.so.1.2.3
    62  7f396f3e2000-7f396f46e000 r-xp 00000000 08:01 1663748                    /usr/lib64/libsqlite3.so.0.8.6
    63  7f396f46e000-7f396f66d000 ---p 0008c000 08:01 1663748                    /usr/lib64/libsqlite3.so.0.8.6
    64  7f396f66d000-7f396f670000 rw-p 0008b000 08:01 1663748                    /usr/lib64/libsqlite3.so.0.8.6
    65  7f396f670000-7f396f671000 rw-p 00000000 00:00 0
    66  7f396f671000-7f396f679000 r-xp 00000000 08:01 155914                     /secgate/lib/libnuma.so.1
    67  7f396f679000-7f396f879000 ---p 00008000 08:01 155914                     /secgate/lib/libnuma.so.1
    68  7f396f879000-7f396f87a000 rw-p 00008000 08:01 155914                     /secgate/lib/libnuma.so.1
    69  7f396f87a000-7f396f881000 r-xp 00000000 08:01 114913                     /lib64/librt-2.12.so
    70  7f396f881000-7f396fa80000 ---p 00007000 08:01 114913                     /lib64/librt-2.12.so
    71  7f396fa80000-7f396fa81000 r--p 00006000 08:01 114913                     /lib64/librt-2.12.so
    72  7f396fa81000-7f396fa82000 rw-p 00007000 08:01 114913                     /lib64/librt-2.12.so
    73  7f396fa82000-7f396fc74000 r-xp 00000000 08:01 155932                     /secgate/lib/libsg_crypto.so.1.0.0
    74  7f396fc74000-7f396fe73000 ---p 001f2000 08:01 155932                     /secgate/lib/libsg_crypto.so.1.0.0
    75  7f396fe73000-7f396fe99000 rw-p 001f1000 08:01 155932                     /secgate/lib/libsg_crypto.so.1.0.0
    76  7f396fe99000-7f396fe9d000 rw-p 00000000 00:00 0
    77  7f396fe9d000-7f3970034000 r-xp 00000000 08:01 114900                     /lib64/libc-2.12.so
    78  7f3970034000-7f3970234000 ---p 00197000 08:01 114900                     /lib64/libc-2.12.so
    79  7f3970234000-7f3970238000 r--p 00197000 08:01 114900                     /lib64/libc-2.12.so
    80  7f3970238000-7f3970239000 rw-p 0019b000 08:01 114900                     /lib64/libc-2.12.so
    81  7f3970239000-7f397023e000 rw-p 00000000 00:00 0
    82  7f397023e000-7f3970255000 r-xp 00000000 08:01 114959                     /lib64/libpthread-2.12.so
    83  7f3970255000-7f3970454000 ---p 00017000 08:01 114959                     /lib64/libpthread-2.12.so
    84  7f3970454000-7f3970455000 r--p 00016000 08:01 114959                     /lib64/libpthread-2.12.so
    85  7f3970455000-7f3970456000 rw-p 00017000 08:01 114959                     /lib64/libpthread-2.12.so
    86  7f3970456000-7f397045a000 rw-p 00000000 00:00 0
    87  7f397045a000-7f3970493000 r-xp 00000000 08:01 155990                     /secgate/lib/libevent.so
    88  7f3970493000-7f3970693000 ---p 00039000 08:01 155990                     /secgate/lib/libevent.so
    89  7f3970693000-7f3970695000 rw-p 00039000 08:01 155990                     /secgate/lib/libevent.so
    90  7f3970695000-7f397071c000 r-xp 00000000 08:01 156006                     /secgate/lib/libsg_sc.so
    91  7f397071c000-7f397091c000 ---p 00087000 08:01 156006                     /secgate/lib/libsg_sc.so
    92  7f397091c000-7f3970932000 rw-p 00087000 08:01 156006                     /secgate/lib/libsg_sc.so
    93  7f3970932000-7f3970a02000 rw-p 00000000 00:00 0
    94  7f3970a02000-7f3970a3c000 r-xp 00000000 08:01 155997                     /secgate/lib/libsg_fm.so
    95  7f3970a3c000-7f3970c3b000 ---p 0003a000 08:01 155997                     /secgate/lib/libsg_fm.so
    96  7f3970c3b000-7f3970c44000 rw-p 00039000 08:01 155997                     /secgate/lib/libsg_fm.so
    97  7f3970c44000-7f3970c4a000 rw-p 00000000 00:00 0
    98  7f3970c4a000-7f3970c6a000 r-xp 00000000 08:01 114952                     /lib64/ld-2.12.so
    99  7f3970e05000-7f3970e0c000 r--s 00000000 08:01 1671450                    /usr/lib64/gconv/gconv-modules.cache
   100  7f3970e0c000-7f3970e3c000 r--p 00000000 08:01 222345                     /secgate/etc/conf/locale/zh_CN/LC_MESSAGES/zh_msg.mo
   101  7f3970e3c000-7f3970e48000 rw-s 00000000 00:10 45292                      /dev/shm/sg_log_state
   102  7f3970e48000-7f3970e52000 rw-s 00000000 00:10 45304                      /dev/shm/sg_dbg_state
   103  7f3970e52000-7f3970e5f000 rw-p 00000000 00:00 0
   104  7f3970e67000-7f3970e69000 rw-p 00000000 00:00 0
   105  7f3970e69000-7f3970e6a000 r--p 0001f000 08:01 114952                     /lib64/ld-2.12.so
   106  7f3970e6a000-7f3970e6b000 rw-p 00020000 08:01 114952                     /lib64/ld-2.12.so
   107  7f3970e6b000-7f3970e6c000 rw-p 00000000 00:00 0
   108  7f3971000000-7f3971c00000 rw-s 00000000 00:12 45294                      /mnt/huge/log-log_ring_0
   109  7fff3e721000-7fff3e736000 rw-p 00000000 00:00 0                          [stack]
   110  7fff3e7ff000-7fff3e800000 r-xp 00000000 00:00 0                          [vdso]
   111  ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

分析:

1  00400000-0040a000 r-xp 00000000 08:01 156019                             /secgate/bin/ddns    代码段
     2  00609000-0060a000 rw-p 00009000 08:01 156019                             /secgate/bin/ddns    数据段

3  025e9000-0260a000 rw-p 00000000 00:00 0                                  [heap]    堆

4  7f3958000000-7f3958021000 rw-p 00000000 00:00 0     各个线程的栈区
      ......    
     13  7f3964dba000-7f39657ba000 rw-p 00000000 00:00 0

转载于:https://blog.51cto.com/mydiary2014/1575695

进程内存分配和/proc/xxx/maps简单分析相关推荐

  1. linux proc/xx/maps文件分析

    转载:https://blog.csdn.net/lijzheng/article/details/23618365 Proc/pid/maps显示进程映射了的内存区域和访问权限.对应内核中的操作集为 ...

  2. Linux内核笔记--内存管理之用户态进程内存分配

    内核版本:linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你 ...

  3. SGI STL 内存分配方式及malloc底层实现分析

    在STL中考虑到小型区块所可能造成的内存碎片问题,SGI STL设计了双层级配置器,第一级配置器直接使用malloc()和free();第二级配置器则视情况采用不同的策略:当配置区块超过128byte ...

  4. 【Linux 内核 内存管理】内存管理架构 ⑤ ( sbrk 内存分配系统调用代码示例 | 在 /proc/pid/maps 中查看进程堆内存详情 )

    文章目录 一.sbrk 内存分配系统调用代码示例 二.在 /proc/pid/maps 中查看进程堆内存详情 本篇博客调用 sbrk 系统调用函数 , 申请并修改 堆内存 , 并在 /proc/pid ...

  5. Linux 操作系统原理 — 内存 — 内存分配算法

    目录 文章目录 目录 前文列表 内存碎片 伙伴(Buddy)分配算法 Slab 算法 虚拟内存的分配 内核态内存分配 vmalloc 函数 kmalloc 用户态内存分配 malloc 申请内存 用户 ...

  6. LINUX进程内存占用情况如何查看的方法

    在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会 ...

  7. linux kernel内存管理之/proc/meminfo下参数介绍

    一.前言 /proc/meminfo是了解Linux系统内存状态的主要接口,里面统计了当前系统各类内存的使用状况,需要注意的是:这是从内核的角度来统计.我们常用的free,vmstat等指令都是通过/ ...

  8. linux进程的内存空间,Linux进程内存统计

    一. 进程内存统计 cat /proc/[pid]/status 通过/proc/[pid]/status可以查看进程的内存使用情况,包括虚拟内存大小(VmSize),物理内存大小(VmRSS),数据 ...

  9. 《深入理解Java虚拟机》-----第3章 垃圾收集器与内存分配策略

    Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的"高墙",墙外面的人想进去,墙里面的人却想出来. 3.1 概述 说起垃圾收集(Garbage Collection,G ...

最新文章

  1. redis内存行数据库细节
  2. esp32 怎么分配freertos 堆栈大小_嵌入式开发入门-从STM32CudeMX、FreeRtos、Proteu仿真开始...
  3. Java集合框架之四大接口、常用实现类,java基础面试笔试题
  4. python拦截数据包_使用Python进行TCP数据包注入(伪造)
  5. XE中rectangle实现渐变
  6. Illustrator2020中文版教程,如何在AI中使用蒙版来裁剪内容?
  7. Boruta特征筛选
  8. 与FPGA相关的独热码
  9. R语言及Rstudio入门小建议(一)
  10. 爬取雪球网的股票信息评论
  11. 同窗情【之一】(词21首)
  12. window本地运行hadoop 测试用例 failed to create symlink
  13. 华为云 CDN金秋特惠活动,这价可以
  14. Rstuio read.csv():列的数目比列的名字要多
  15. python自动化处理隐藏元素_处理隐藏元素
  16. MBT测试实例:做个“机器人”,使其随机、持续的对“web页面”做交互性测试(一)测试目标
  17. 如何快速学习STAR-CCM+软件解决工程实际问题
  18. python数据挖掘实战笔记——文本挖掘(8):用sklearn包进行关键字提取
  19. 小米公交卡服务器维护,小米公交卡如何退费 小米公交卡快速退费教程
  20. Android RTL布局适配

热门文章

  1. Perl5的OOP学习笔记
  2. 都有Python了,还要什么编译器
  3. 跟我斗图,我用Python爬虫下载几个G的表情砸死你
  4. python制作生日祝福_【中信项目案例分享】python 实现自动生成个性化生日贺卡...
  5. android 联系人编辑界面,android – 以编程方式编辑联系人的姓名/电话号码
  6. 逻辑回归,朴素贝叶斯,KMeans,决策树的不足和优势
  7. HDU1892(二维树状数组)
  8. 点分治问题 ----------- HDU6881 Tree Cutting or 2020杭电多校第10场 [点分治+思维]
  9. 点分治问题 ----------- 2019-2020 ICPC Asia Hong Kong Regional Contest C.Constructing Ranches[点分治+树状数组]
  10. Codeforces Round #370 (Div. 2)E. Memory and Casinos[期望概率+线段树区间合并]详细推导