maps
2022/7/14原创大约 1 分钟约 343 字
1. 介绍
简单来说就是查看进程的虚拟地址空间是如何使用的。总共包括六列,每列及其含义如下
1.1. address
地址:本段在虚拟内存中的地址范围;对应 vm_area_struct 中的 vm_start 和 vm_end。
1.2. perms
权限:本段的权限;r- 读,w- 写,x- 执行, p- 私有;对应 vm_flags。
1.3. offset
偏移地址:即本段映射地址在文件中的偏移;对于有名映射指本段映射地址在文件中的偏移,对应 vm_pgoff;对于匿名映射为 vm_area_struct->vm_start。
1.4. dev
主设备号与次设备号:所映射的文件所属设备的设备号,对应 vm_file->f_dentry->d_inode->i_sb->s_dev。匿名映射为 0。其中 fd 为主设备号,00 为次设备号。
1.5. inode
文件索引节点号:对应 vm_file->f_dentry->d_inode->i_ino,与 ls –i 显示的内容相符。匿名映射为 0。;
1.6. pathname
映射的文件名:对有名映射而言,是映射的文件名,对匿名映射来说,是此段内存在进程中的作用。[stack] 表示本段内存作为栈来使用,[heap] 作为堆来使用,其他情况则为无。