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)
相关文章
|
6月前
crash —— 内核符号和地址直接相互转换
crash —— 内核符号和地址直接相互转换
|
10月前
|
存储 C语言 索引
字符串和字符串结束标志
在编程中,字符串是一种常用的数据类型,用于表示文本信息。字符串由一系列字符组成,这些字符可以是字母、数字、标点符号等。每个字符串都有一个结束标志,用于标识字符串的末尾。了解字符串和字符串结束标志的概念对于正确处理和操作字符串至关重要。
247 0
|
机器学习/深度学习 C语言
【C 语言】文件操作 ( 使用 fseek 函数生成指定大小文件 | 偏移量 文件字节数 - 1 )
【C 语言】文件操作 ( 使用 fseek 函数生成指定大小文件 | 偏移量 文件字节数 - 1 )
540 0
【C 语言】文件操作 ( 使用 fseek 函数生成指定大小文件 | 偏移量 文件字节数 - 1 )
|
存储
模拟实现库函数--strcmp(字符二进制比较)
模拟实现库函数--strcmp(字符二进制比较)
模拟实现库函数strcat--将源字符串的副本追加到目标字符串(理解内存重叠问题)
模拟实现库函数strcat--将源字符串的副本追加到目标字符串(理解内存重叠问题)
详解字符串追加函数:strcat的使用及模拟实现
详解字符串追加函数:strcat的使用及模拟实现
173 0
详解字符串追加函数:strcat的使用及模拟实现
编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。
编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。
309 0
fwrite()读取长度错误
fwrite()读取长度错误
123 0
C代码:清理一行字串前后的无效字符
C代码:清理一行字串前后的无效字符
104 0
|
JavaScript 前端开发 PHP
C#(五)之常量、@控制符、转译符、ASCII编码,Console.Write
对C#的常量,ASCII编码、@控制符、“+”连接符、Console.WriteLine及转译字符的简单应用。
356 0
C#(五)之常量、@控制符、转译符、ASCII编码,Console.Write