/proc/{pid}/maps

/proc/{pid}/maps 是进程运行时的虚拟内存映射文件,每个进程在 /proc/ 目录下都有一个名为 pid (进程号)的文件目录,进程自身也可以通过查看 /proc/self/maps 来收集内存映射的相关信息,/proc/self/maps 文件比较特殊,每个进程看到的内容都是自身的内存映射,maps文件内容一共6列,含义如下:

76093000-76096000 r-xp 00000000 b3:19 941 /system/lib/libmemalloc.so

  1. 所处虚拟内存地址(VMA, Virtual Memory Area)的范围:76093000-76096000

    • 在 linux 中将进程虚拟空间中的一个段叫做虚拟内存区域VMA。

    • VMA 对应 ELF 文件中的 segment。

    • ELF 文件有 section 和 segment 的概念:从链接的角度来看,elf 按照 section 存储的; 从装载的角度来看,elf 文件又是按照 segment 进行划分,这是为了防止按照 section 装载时造成的内部碎片。segment 相当于是将多个属性(读写执行)相同的 section 合并在一起。program headers存放 segment 的信息,section table 存放 section 的信息。

  2. VMA权限:r-xp

    r=read,w=write,x=executed,s=shared,p=private

  3. 偏移量:00000000

    表示VMA对应的 segment 在映像文件中的偏移。

  4. 主设备号与次设备号:b3:19

  5. 映像文件的节点号:941

  6. 映像文件的路径:/system/lib/libmemalloc.so

原文地址:https://www.cnblogs.com/tongyishu/p/13410430.html