手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

如何在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分析
© 手抄报圈