crash —— 查看进程的vma结构体

news/发布时间2024/8/25 16:51:43

crash提供了vm命令来输出进程的vma相关的信息。

输出当前当进程的vma列表

crash> vm
PID: 3319   TASK: ffff889760358000  CPU: 6   COMMAND: "kvm"MM               PGD          RSS    TOTAL_VM
ffff893ada165000  ffff893a8c4e2000  45772k  9535832kVMA           START       END     FLAGS FILE
ffff893a7eab1960 55b4b8274000 55b4b90d6000 8000875 /sf/bin/qemu-system-x86_64
ffff893a7eab1ed0 55b4b92d5000 55b4b9476000 8100875 /sf/bin/qemu-system-x86_64
ffff893cb6d533f0 55b4b9476000 55b4b956d000 8100877 /sf/bin/qemu-system-x86_64
ffff893a7eab1c18 55b4b956d000 55b4b9597000 8100077
ffff888bb1fbc828 7efa95dcf000 7efa95dd0000 8100070
ffff88ddadc64658 7efa95dd0000 7efa965d0000 8100077
ffff88d5d679bed0 7efa965d0000 7efa965d1000 8100070
...

查看指定进程的vma列表

crash> vm -p 2085
PID: 2085   TASK: ffff88dcca1fa000  CPU: 61  COMMAND: "supervisor"MM               PGD          RSS    TOTAL_VM
ffff88dea7232000  ffff88ddab4aa000  1960k    16960kVMA           START       END     FLAGS FILE
ffff88dcc9122658     400000     40e000 8000875 /sf/bin/supervisor
VIRTUAL     PHYSICAL
400000      5e6cdf6000
401000      5e57277000
...
40c000      5e6efca000
40d000      5e7ad44000VMA           START       END     FLAGS FILE
ffff88dcc9123308     60d000     60e000 8100871 /sf/bin/supervisor
VIRTUAL     PHYSICAL
60d000      5be9452000VMA           START       END     FLAGS FILE
ffff88dcc9123960     60e000     60f000 8100873 /sf/bin/supervisor
VIRTUAL     PHYSICAL
60e000      5c00fdd000VMA           START       END     FLAGS FILE
ffff88dcc91222b8    2381000    23a6000 8100073
VIRTUAL     PHYSICAL
2381000     5c181b3000
2382000     5bdd057000
2383000     5c30e4f000
...VMA           START       END     FLAGS FILE
ffff88dcc9123d00 7fa1cecdd000 7fa1cece0000 8000075 /lib/x86_64-linux-gnu/libdl-2.23.so
VIRTUAL     PHYSICAL
7fa1cecdd000  5e4ad82000
7fa1cecde000  5e6359c000
7fa1cecdf000  5e58939000VMA           START       END     FLAGS FILE
ffff88dcc91223a0 7fa1cece0000 7fa1ceedf000 8000070 /lib/x86_64-linux-gnu/libdl-2.23.so
VIRTUAL     PHYSICAL
7fa1cece0000  FILE: /lib/x86_64-linux-gnu/libdl-2.23.so  OFFSET: 3000
7fa1cece1000  FILE: /lib/x86_64-linux-gnu/libdl-2.23.so  OFFSET: 4000
7fa1cece2000  FILE: /lib/x86_64-linux-gnu/libdl-2.23.so  OFFSET: 5000
7fa1cece3000  FILE: /lib/x86_64-linux-gnu/libdl-2.23.so  OFFSET: 6000
...VMA           START       END     FLAGS FILE
ffff88dcc91236a8 7fa1cf0a1000 7fa1cf2a1000 8000070 /lib/x86_64-linux-gnu/libc-2.23.so
VIRTUAL     PHYSICAL
7fa1cf0a1000  FILE: /lib/x86_64-linux-gnu/libc-2.23.so  OFFSET: 1c0000
7fa1cf0a2000  FILE: /lib/x86_64-linux-gnu/libc-2.23.so  OFFSET: 1c1000
7fa1cf0a3000  FILE: /lib/x86_64-linux-gnu/libc-2.23.so  OFFSET: 1c2000
...
7fa1cf29f000  FILE: /lib/x86_64-linux-gnu/libc-2.23.so  OFFSET: 3be000
7fa1cf2a0000  FILE: /lib/x86_64-linux-gnu/libc-2.23.so  OFFSET: 3bf000VMA           START       END     FLAGS FILE
ffff88dcc9123790 7fa1cf2a1000 7fa1cf2a5000 8100071 /lib/x86_64-linux-gnu/libc-2.23.so
VIRTUAL     PHYSICAL
7fa1cf2a1000  5b9e194000
7fa1cf2a2000  5c77e48000
7fa1cf2a3000  5c14c49000
7fa1cf2a4000  5be52cf000VMA           START       END     FLAGS FILE
ffff88dcc9123a48 7fa1cf2a5000 7fa1cf2a7000 8100073 /lib/x86_64-linux-gnu/libc-2.23.so
VIRTUAL     PHYSICAL
7fa1cf2a5000  5c65e5e000
7fa1cf2a6000  5c22353000VMA           START       END     FLAGS FILE
ffff88dcc9122570 7fa1cf2a7000 7fa1cf2ab000 8100073
VIRTUAL     PHYSICAL
7fa1cf2a7000  5bbfd52000
7fa1cf2a8000  5c0957a000
7fa1cf2a9000  (not mapped)
7fa1cf2aa000  5c7a4ea000
...

查看指定进程的指定vma的的内容

下面查看进程2085的vma:ffff88dcc9122570的信息:

crash> vm  -P ffff88dcc9122570 2085
PID: 2085   TASK: ffff88dcca1fa000  CPU: 61  COMMAND: "supervisor"VMA           START       END     FLAGS FILE
ffff88dcc9122570 7fa1cf2a7000 7fa1cf2ab000 8100073
VIRTUAL     PHYSICAL
7fa1cf2a7000  5bbfd52000
7fa1cf2a8000  5c0957a000
7fa1cf2a9000  (not mapped)
7fa1cf2aa000  5c7a4ea000

或者使用2085进程的task_struct结构体的地址ffff88dcca1fa000:

crash> vm  -P ffff88dcc9122570 ffff88dcca1fa000
PID: 2085   TASK: ffff88dcca1fa000  CPU: 61  COMMAND: "supervisor"VMA           START       END     FLAGS FILE
ffff88dcc9122570 7fa1cf2a7000 7fa1cf2ab000 8100073
VIRTUAL     PHYSICAL
7fa1cf2a7000  5bbfd52000
7fa1cf2a8000  5c0957a000
7fa1cf2a9000  (not mapped)
7fa1cf2aa000  5c7a4ea000

查看某个进程的vma结构体的内容

crash> vm -x -v 2085
PID: 2085   TASK: ffff88dcca1fa000  CPU: 61  COMMAND: "supervisor"
struct vm_area_struct {vm_start = 0x400000,vm_end = 0x40e000,vm_next = 0xffff88dcc9123308,vm_prev = 0x0,vm_rb = {__rb_parent_color = 0xffff88dcc9123329,rb_right = 0x0,rb_left = 0x0},rb_subtree_gap = 0x400000,vm_mm = 0xffff88dea7232000,vm_page_prot = {pgprot = 0x25},vm_flags = 0x8000875,shared = {rb = {__rb_parent_color = 0xffff893cb8ff5f28,rb_right = 0x0,rb_left = 0x0},rb_subtree_last = 0xd},anon_vma_chain = {next = 0xffff88dcc91226d0,prev = 0xffff88dcc91226d0},anon_vma = 0x0,vm_ops = 0xffffffff81e36e00 <generic_file_vm_ops>,vm_pgoff = 0x0,vm_file = 0xffff88ddae938c00,
...
}
...
struct vm_area_struct {vm_start = 0x7ffe1cb03000,vm_end = 0x7ffe1cb05000,vm_next = 0x0,vm_prev = 0xffff88dcc831e9f8,vm_rb = {__rb_parent_color = 0xffff88dcc831ea18,rb_right = 0x0,rb_left = 0x0},rb_subtree_gap = 0x0,vm_mm = 0xffff88dea7232000,vm_page_prot = {pgprot = 0x25},vm_flags = 0x8040075,shared = {rb = {__rb_parent_color = 0x0,rb_right = 0x0,rb_left = 0x0},rb_subtree_last = 0x0},anon_vma_chain = {next = 0xffff88dcc831fd78,prev = 0xffff88dcc831fd78},anon_vma = 0x0,vm_ops = 0xffffffff81e3a100 <special_mapping_vmops>,vm_pgoff = 0x0,vm_file = 0x0,vm_private_data = 0xffffffff81e00f20 <vdso_mapping>,
...
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.liansuoyi.cn/news/34316747.html

如若内容造成侵权/违法违规/事实不符,请联系连锁易网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

学习笔记3

程序设计语言必备要素和技能 对于Python、C和Java这三门常见的编程语言,它们都有一些共同的必备要素和技能。语法和语义:编程语言的语法和语义是这个语言的基础。这包括了熟悉变量、数据类型、运算符、控制流程等基本语法结构,以及了解编程语言的特性和约束。数据结构与算法…

Redis搭建集群架构

使用docker搭建 6.x 版本以后的镜像 docker 支持部署集群模式,由于 Redis 要求集群至少要有三个主节点,因此本次测试搭建了三主三从的 Redis 集群。 不基于 Host 网络模式 配置docker-compose.yml文件 version: "3"networks:redis-cluster:driver: bridgeipam:conf…

1.多线程(实现方式,常用方法,生命周期)

多线程(实现方式,常用方法,生命周期) 概述:可以让程序同时做多件事情; 可以提高效率; 只要你想让多个事情同时运行就需要用到多线程;如: 软件中的耗时操作、所有的聊天软件、所有的服务器‘并发和并行:并发:在同一时刻,有多个指令在单个CPU上交替执行; 并行:在同一时刻,有…

STM32之步进电机

步进电机 学习资料:野火电机应用开发实战指南 双极性步进电机(上):控制模式 |文章 | MPS (monolithicpower.cn) 爱上半导体---步进电机的工作原理步进电机的介绍 步进电机又称为脉冲电机,是一种将电脉冲信号转换成相应的角位移或线位移的电动机。每输入一个脉冲信号,转子就…

封装全局异常处理

目录1 定义错误码类2 定义业务异常类3 全局异常处理器4 使用5 前端请求效果总结 1 定义错误码类 ​ 可以定义各种错误码枚举,比如业务,系统相关的报错信息 /*** 错误代码* 错误码** @author leovany* @date 2023/09/23*/ public enum ErrorCode {SUCCESS(0, "success&qu…

根据周数计算月

问题:如何根据周数计算月 假设:以每周第一天为标准,一周从周一开始计 函数公式解决:=MONTH(DATE(A2,1,B2*7-WEEKDAY(DATE(A2,1,1),3))) 以周数乘以7计算出当年第一周的最后一天,再一个数推到元旦。所减的数字从周一至周日依次是0-6,正好可以用Weekday提取,第二参数用3。…

基于Python + SnowNLP实现一个文本情感分析系统

当你浏览社交媒体、新闻或任何数字内容时,你有没有想过背后的技术是如何分析和理解这些文本的情感的?有没有想过在数百万条评论、帖子或文章中,如何快速地识别出其中的积极和消极情绪?在这篇文章中,我们将揭示其中的奥秘,并教你如何使用Python和SnowNLP来轻松地实现一个文…

使用sqoop export命令将hive数据导入mysql

描述一下 因为我前两天的测试里面,用的是另外一种方法,所以今天想要尝试一下sqoop export的方法,这个方法我之前也试过,但是一直报错,但是!我又来啦!!! 相关步骤 自己设置一个数量不多的csv文件:然后按照之前的步骤:上传,导入数据库:然后在mysql里面同时创建一个与…

主流大语言模型的技术原理细节

1.比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节:tokenizer、位置编码、Layer Normalization、激活函数等。2. 大语言模型的分布式训练技术:数据并行、张量模型并行、流水线并行、3D 并行、零冗余优化器 ZeRO、CPU 卸载技术 ZeRo-offload、混合精度训练、激活重计算技术、…

为什么 Rust 备受开发者青睐?

引子 作为一名敏锐的前端开发者,您可能早已对 Rust 有所耳闻,毕竟近几年,使用 Rust 开发的前端构建工具每经发布,其卓越的性能数据总是能带来社区的一阵惊叹。图片来源:https://swc.rs/ 例如 SWC 就在其官网宣称在单线程上的执行速度是传统代码转译工具 Babel 的 20 倍。如…

第6天 中断处理

GDT初始化 为了兼容前几代的CPU,所以GDT段描述符看起来有些不规整,让人难以理解,GDT段描述符中存储的内容和第五天讲的一样: 分为开始地址、段大小、段属性。我们实际处理是分割成以下几个部分:段基址也就是段开始地址被拆成了三部分,段界限也就是段大小被拆成了三部分,剩…

设置ubuntu server 在 virtual box下的分别率

首先进入 virtual box的ubuntu server 虚拟机,然后通过下面的命令重启系统shutdown -r now在启动过程中按shift进入GRUB选择菜单,点击c进入命令行, 输入vbeinfo显示可用的分辨率,并记录下来

《从零开始的 Zig 编程》Zig 是什么?如何构建并运行一个 Zig 项目

Zig 概述 从现在开始我们来一起学习一门新的语言 Zig,这门语言估计很多人都没听过,因为即便在国外用的也不是很多,国内几乎还没有公司在用。但这门语言非常优秀,它被称为现代化的 C 语言,具有安全、快速以及富有表现力等特点。下面我们就从计算机原理的角度,来介绍一下 Z…

数据类型以及可能的面试题

数据类型以及可能的面试题 基础类型 int zs = 30; long num = 30L; //这个一般在后面加一个Lfloat f = 0.1f; double d = 0.1;//字符 char str1 = 刘; //字符只能用单引号 , 并且只能有一个字符 //字符串 String 不是关键字是类 String str2 = "uhsdaoja";拓展 //…

嵌入式软件调试与验证1概述

1 嵌入式软件调试与验证技术概述 1.1 调试和验证过程的重要性 近年来,嵌入式系统(ES Embedded systems)因其灵活的操作和可能性而被广泛应用于电子系统行业。嵌入式系统由硬件、软件和其他模块(如机械)组成,旨在作为更大系统的一部分执行特定任务。网络物理系统(CPS Cyb…

Redis 下载和安装(Windows)教程

下载 虽然 Redis 官方网站没有提供 Windows 版的安装包,但可以通过 GitHub 来下载 Windows 版 Redis 安装包。下载地址:https://github.com/tporadowski/redis/releases打开上述的下载链接,Redis 支持 32 位和 64 位的 Window 系统,如图所示:下载完成后,解压压缩包,您会…

学习笔记3 截图 代码

一、苏格拉底挑战二、使用chatgpt解决问题三、实践过程实践代码 hello: hello.o main.ogcc -Iinclude -o bin/hello hello.o mian.o hello.o:gcc -c /home/yuanyi/study/src/hello.c -Iinclude -o hello.o main.o:gcc -c /home/yuanyi/study/src/main.c -Iinclude -o main.ocle…

AT_ddcc2020_final_d Pars/ey

我不知道离别的滋味是这样凄凉,我不知道说声再见要这么坚强。AT_ddcc2020_final_d Pars/ey 重工业题。 找环然后树形 DP 是显然的,先考虑断开环上的边怎么做。 把环复制一遍放在结尾,记 \(sum_i\) 为环长的前缀和,\(f_i\) 为该子树内的最长根链的长度,问题变为每次给定一个…
推荐文章