crash命令 —— vm

参考:
https://crash-utility.github.io/help_pages/vm.html

用法:

  • 查看进程的用户虚拟内存信息(mm_struct地址,vma等)
查看当前进程: vm
查看指定进程: vm <进程pid> 或者 vm <进程的task_struct>

image

  • 查看进程的用户虚拟内存的映射信息
    vma -p

    • 如果虚拟地址已经映射到物理地址,那么会将对应的物理地址显示出来
    • 否则,如果映射的是文件的话,显示文件名以及偏移
    • 如果是匿名内存,并且被交换出去了,那么会显示对应的交换设备以及偏移
      image
    • 如果只想查看指定vma的映射信息,可以使用vm -P <vma的虚拟地址>
  • 查看指定mm_struct的信息,用于无法通过task_struct获取mm_struct,但是可以通过其他途径获取mm_struct地址的情况
    vm -M <mm_struct的地址>

  • 查看指定进程的mm_struct的内容,跟用struct mm_struct <mm_struct地址>一个效果
    vm -m 或者 vm -m <pid>

  • 查看指定进程的vm_area_struct的内容,跟struct vm_area_struct <vma地址>效果类似
    vm -v 或者 vm -v <pid> 或者 vm -v <进程task_struct>

  • 将十六进制的vm_flags翻译为人可读的形式

crash> vm -f 0x8000871
8000871: (READ|MAYREAD|MAYWRITE|MAYEXEC|DENYWRITE|CAN_NONLINEAR)
  • 在进程vma里搜索指定的字符
在当前进程的vma中搜索: vm -R bash
在所有进程的vma中搜索: foreach vm -R bash
在所有进程的vma中搜索指定的flags: foreach vm -R 8000871
在所有进程的vma中搜索指定的虚拟地址: foreach vm -R 7f5699fae000
posted @ 2022-03-27 20:16  摩斯电码  阅读(403)  评论(0编辑  收藏  举报