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)
相关文章
|
2月前
crash —— 内核符号和地址直接相互转换
crash —— 内核符号和地址直接相互转换
|
11月前
|
C#
C# (File方法)对文件的操作,字节写入和读取
C# (File方法)对文件的操作,字节写入和读取
|
机器学习/深度学习 C语言
【C 语言】文件操作 ( 使用 fseek 函数生成指定大小文件 | 偏移量 文件字节数 - 1 )
【C 语言】文件操作 ( 使用 fseek 函数生成指定大小文件 | 偏移量 文件字节数 - 1 )
501 0
【C 语言】文件操作 ( 使用 fseek 函数生成指定大小文件 | 偏移量 文件字节数 - 1 )
fwrite()读取长度错误
fwrite()读取长度错误
105 0
编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。
编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。
278 0
|
JavaScript 前端开发 PHP
C#(五)之常量、@控制符、转译符、ASCII编码,Console.Write
对C#的常量,ASCII编码、@控制符、“+”连接符、Console.WriteLine及转译字符的简单应用。
319 0
C#(五)之常量、@控制符、转译符、ASCII编码,Console.Write
|
C语言
【C 语言】文件操作 ( 使用 fread 和 fwrite 实现二进制文件的拷贝 | stat 统计文件大小 | feof 判定文件结尾 )
【C 语言】文件操作 ( 使用 fread 和 fwrite 实现二进制文件的拷贝 | stat 统计文件大小 | feof 判定文件结尾 )
323 0
【C 语言】文件操作 ( 使用 fread 和 fwrite 实现二进制文件的拷贝 | stat 统计文件大小 | feof 判定文件结尾 )
|
Android开发
【Android 逆向】ELF 文件格式 ( 程序头偏移量 | 节区头偏移量 | 处理器特定标志 | ELF 文件头大小 )
【Android 逆向】ELF 文件格式 ( 程序头偏移量 | 节区头偏移量 | 处理器特定标志 | ELF 文件头大小 )
213 0
【Android 逆向】ELF 文件格式 ( 程序头偏移量 | 节区头偏移量 | 处理器特定标志 | ELF 文件头大小 )
|
NoSQL C语言
printf段错误(core dump): 一个格式化输出引起的问题
printf段错误(core dump): 一个格式化输出引起的问题
510 0
读取文件内容: 1.通过open函数获取文件对象 2.执行read函数 需要指定读取的字符
读取文件内容: 1.通过open函数获取文件对象 2.执行read函数 需要指定读取的字符