【kernel】proc/pid/maps

【kernel】proc/pid/maps

首先从https://blog.csdn.net/shenfengchen/article/details/117020725这位博主这里借来一份带注释的表格,大体上描述了maps文件的一个基本构成。

起始地址-结束地址    属性  偏移地址 主从设备号 inode编号 文件名
00008000-00590000 r-xp 00000000 b3:01 1441836    /root/xxx----------------------------可执行文件的代码段,下面分别是只读和可读写的段。
00590000-005b2000 r--p 00587000 b3:01 1441836    /root/xxx
005b2000-005c4000 rw-p 005a9000 b3:01 1441836    /root/xxx
005c4000-0280c000 rwxp 00000000 00:00 0          [heap]-------------------------------如果堆在业务稳定后,还继续单向增加,则可能存在泄漏。
2aaa8000-2aac5000 r-xp 00000000 b3:01 786621     /lib/ld-2.28.9000.so-----------------下面是最复杂的部分,存在各种各种样的内存使用情况,大体上有库映射、匿名内存映射、文件内存映射等。
2aac5000-2aac6000 r--p 0001c000 b3:01 786621     /lib/ld-2.28.9000.so
2aac6000-2aac7000 rw-p 0001d000 b3:01 786621     /lib/ld-2.28.9000.so
2aac7000-2aac8000 r-xp 00000000 00:00 0          [vdso]
2aac8000-2aaca000 rw-p 00000000 00:00 0...
2d9aa000-2d9c8000 r-xp 00000000 b3:01 656126     /usr/lib/libv4lconvert.so.0.0.0
2d9c8000-2d9c9000 ---p 0001e000 b3:01 656126     /usr/lib/libv4lconvert.so.0.0.0
2d9c9000-2d9ca000 r--p 0001e000 b3:01 656126     /usr/lib/libv4lconvert.so.0.0.0
2d9ca000-2d9cb000 rw-p 0001f000 b3:01 656126     /usr/lib/libv4lconvert.so.0.0.0
2d9cb000-2da23000 rw-p 00000000 00:00 0...
3e8aa000-3e90c000 rw-s 00000000 00:06 5243       /dev/mem_cma
3ea00000-3ea42000 rw-p 00000000 00:00 0 
3ea42000-3eb00000 ---p 00000000 00:00 07fa4a000-7fa6b000 rwxp 00000000 00:00 0          [stack]--------------------------------栈的大小是可变的,但是不能超过RLIMIT_STACK规定的大小。

下面主要介绍一些这些名词都是什么
起始地址-结束地址:本段内存映射的虚拟地址空间范围,对应vm_area_struct中的vm_start和vm_end。
属性:本段虚拟地址空间的属性。每种属性用一个字段表示,r表示可读,w表示可写,x表示可执行,p和s共用一个字段,互斥关系,p表示私有段,s表示共享段,如果没有相应权限,则用’-’代替。
偏移地址:针对有名映射,指本段映射地址在文件中的偏移,对应vm_pgoff。对匿名映射而言为vm_area_struct->vm_start。
主从设备号:所映射的文件所属设备的设备号,对应vm_file->f_dentry->d_inode->i_sb->s_dev。匿名映射为0。其中左两位为主设备号,右两位为次设备号。
inode编号:文件的索引节点号,对应vm_file->f_dentry->d_inode->i_ino,与ls –i显示的内容相符。匿名映射为0。
文件名:所映射的文件名。对有名映射而言,是映射的文件名,对匿名映射来说,是此段内存在进程中的作用。

最后谈一谈maps这个文件的应用,maps记录的就是虚拟地址的映射,通过该文件可以进行遍历查找存在映射的虚拟地址。其他暂时还没用到,待用到时进行补充。也欢迎评论区留言补充。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值