如何在Linux中使用Crash分析

 时间:2024-10-14 03:14:36

1、首先内核态的进程堆栈,另一个是紧挨进程描述符的数据结构thread_info,叫线程描述符,内核的堆栈大小一般为8KB,也就是8192个字节,占用两个页。

如何在Linux中使用Crash分析

2、接着thread_union结构体的大小为8192个字节,也就是stack数组的大小,类型是unsigned long类型,由于联合体中的成员变量都是占用同一块内存区域。

如何在Linux中使用Crash分析

3、然后有一个前提假设,成员占用的字节数相同,当成员所占的字节数不同时,只会覆盖相应的字节,对于thread_union联合体可以同时访问这两个成员,只要能够正确获取到两个成员变量的地址。

如何在Linux中使用Crash分析

4、接着用于保存各种特定的进程标志,最重要的两个是TIF_SIGPENDING,如果进程有待处理的信号就置位,TIF_NEED_RESCHED表示进程应该需要调度器选择另一个进程替换本进程执行。

如何在Linux中使用Crash分析

5、然后PC指针在dev_get_by_flags中,不能访问的内核虚地址为45685516,内核中一般可访问的地址都是以0xCXXXXXXX开头的地址。

如何在Linux中使用Crash分析

6、最后在fault.c文件中,__do_kernel_fault函数打印中Unable to handle kernel pagi荏鱿胫协ng request at virtual address 45685516,该地址是内核空间不可访问的地址。

如何在Linux中使用Crash分析
  • Ubuntu系统查看CPU、内存利用率方法
  • Win7操作系统查看本地用户配置文件
  • 怎么在Internet信息服务(IIS)管理器上新建网站
  • Java判断两个变量的数据类型和值是否相同
  • git bash怎样将文件回退到上一个版本?
  • 热门搜索
    关于国庆的手抄报 关于生命的手抄报 劳动节手抄报内容 十一手抄报 安全日手抄报 抗击病毒手抄报 健康成长手抄报 英雄事迹手抄报 诗配画手抄报 关于网络安全的手抄报