crash —— 将flags转换成可读的字符

简介: crash —— 将flags转换成可读的字符

将page的flags转换为可读字符串

crash> kmem -g 01fffe00000a001c
FLAGS: 1fffe00000a001c
  PAGE-FLAG       BIT  VALUE
  PG_referenced     2  0000004
  PG_uptodate       3  0000008
  PG_dirty          4  0000010
  PG_reclaim       17  0020000
  PG_unevictable   19  0080000
  PG_savepinned     4  0000010
  PG_isolated      17  0020000

此外,可以用whatis查看pageflags的定义:

crash> whatis pageflags
enum pageflags {
  PG_locked = 0
  PG_error = 1
  PG_referenced = 2
  PG_uptodate = 3
  PG_dirty = 4
  PG_lru = 5
  PG_active = 6
  PG_waiters = 7
  PG_slab = 8
  PG_owner_priv_1 = 9
  PG_arch_1 = 10
  PG_reserved = 11
  PG_private = 12
  PG_private_2 = 13
  PG_writeback = 14
  PG_head = 15
  PG_mappedtodisk = 16
  PG_reclaim = 17
  PG_swapbacked = 18
  PG_unevictable = 19
  PG_mlocked = 20
  PG_uncached = 21
  PG_hwpoison = 22
  PG_young = 23
  PG_idle = 24
  PG_workingset = 25
  __NR_PAGEFLAGS = 26
  PG_checked = 9
  PG_swapcache = 9
  PG_fscache = 13
  PG_pinned = 9
  PG_savepinned = 4
  PG_foreign = 9
  PG_slob_free = 12
  PG_double_map = 13
  PG_isolated = 17
};

上面__NR_PAGEFLAGS表示flags中前26位用于表示page的状态,所以在转换时会忽略标志位的无效位。

将vma的flags转换为可读的字符

crash> vm -f 8000875
8000875: (READ|EXEC|MAYREAD|MAYWRITE|MAYEXEC|DENYWRITE|CAN_NONLINEAR)
相关文章
|
网络协议 Linux Android开发
探索eBPF:Linux内核的黑科技(下)
探索eBPF:Linux内核的黑科技
|
传感器 监控 物联网
PoE 交换机:为现代网络供电
【4月更文挑战第21天】
529 0
|
Linux 开发者 云计算
linux内核符号表kallsyms简介
在使用perf排查问题时,我们经常会发现[kernel.kallsyms]这个模块。这到底是个什么东西呢?
19795 0
|
IDE 数据可视化 Java
5款经典代码阅读器的使用方案对比
代码阅读是技术人的必备技能之一,高效地梳理代码能够极大程度上提高开发人员的工作效率,进一步为业务创造新价值。
11724 0
5款经典代码阅读器的使用方案对比
|
域名解析 存储 网络协议
Linux中搭建主从DNS服务器
搭建主从DNS架构以提升DNS服务的高可用性、负载均衡和数据冗余。主服务器配置涉及编辑`/etc/named.conf`,设置监听IP和允许查询的范围,并定义主区域及允许的数据传输。从服务器配置需指定为奴隶类型,并指明主服务器的IP。测试表明正反向查询解析均正常。注意配置文件的语法正确性和权限设置。
440 0
|
安全 Linux 网络安全
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上
|
人工智能 自然语言处理 算法
如何学习AIGC
【1月更文挑战第21天】如何学习AIGC
666 1
如何学习AIGC
|
存储 测试技术 Linux
深入了解KUnit:Linux内核新一代单元测试工具(上)
深入了解KUnit:Linux内核新一代单元测试工具
|
11月前
|
API 开发者
提供一份 1688 商品详情接口的错误码及解决方法
本文介绍了 1688 商品详情接口常见的错误码及其解决方法,包括 401(未授权)、403(禁止访问)、404(未找到)、429(请求过多)和 500/502/504(服务器错误)。详细说明了每个错误码的含义及相应的解决步骤,帮助开发者快速定位并解决问题。

热门文章

最新文章