当前位置: 首页 > 面试题库 >

这些内核恐慌错误是什么意思?

司马建柏
2023-03-14
问题内容

insmod是ARM平台上的内核模块,并且遇到内核崩溃,导致这三个错误被打印到屏幕上

  1. Unhandled fault: external abort on non-linefetch (0x008)
  2. Unhandled fault: imprecise external abort (0xc06)
  3. Kernel panic - not syncing: Fatal exception in interrupt

    • 括号中的值是什么?
    • 是什么3意思这听起来像是原子调度,但是内核模块中没有。

问题答案:

括号中的值是ifsr(指令故障状态)寄存器。中止的原因有很多,这些原因有特定的原因。内核中有一些表可以处理特定的故障原因,而另一些表则具有处理程序,该处理程序执行a
printk并中止任务或panic()执行内核。参见:arm / mm /
fault.c
。除非您正在开发故障处理程序,否则该值可能没有价值。尽管它可以使您了解故障的根源,但最好还是PC在该地址查看代码(我认为它已经打印出来了?)。

这些故障可能发生在任何地方。在用户任务,内核任务或interrupt处理程序等中。由于interrupt处理程序崩溃,Linux决定停止所有操作,而无需进行任何操作。否则,您可能会损坏磁盘(甚至更多),等等。

注意:每个
故障状态寄存器

都有一个 abort.S 文件,该文件对于特定的ARM CPU是不同的。例如,请参见abort-
ev7.S
v7_early_abort。将其放入在启动时匹配的处理器表中。

  1. 未处理的故障 -尝试读取未映射的内存(通过MMU)。
  2. 内核崩溃 - 认为无法恢复的代码发生 未处理的错误


 类似资料:
  • 问题内容: 我试图从E3roid示例运行示例。除了我什么时候,我都会在页面上强行关闭。这是logcat错误。通过查看它,您能否告诉我这意味着什么,什么问题? 问题答案: 您是否已将AndroidActivity添加到AndroidManifest?

  • 突然之间,Android Studio模拟器停止了工作。当我尝试运行虚拟设备时,我在事件日志中得到以下错误。 模拟器:恐慌:找不到AVD系统路径。请定义ANDROID_SDK_ROOT模拟器:进程已完成,退出代码为%1 所以我检查了一下环境变量被设置为什么值,结果它为空。因此,基于对一个类似问题的回答,我将其设置为;但我还是得到了同样的错误。 我试着从AVD管理器中删除所有的虚拟设备并创建一个新的

  • 问题内容: 除了标准,,和运营商; 但什么是这些均值(,,,)? 又如何操作? in返回正常的余数模量,但是仅当,为什么会这样?怎么办? 又如何操作?它有什么作用? 问题答案: :求幂 :异或(按位) :模数 :除以积分结果(舍弃余数)

  • 问题内容: T_PAAMAYIM_NEKUDOTAYIM听起来真的很异国情调,但对我来说绝对是胡说八道。我将其全部追溯到以下代码行: 在构造函数中,我创建一个Config对象。这是课程: 不知道为什么这不起作用/错误是什么意思… 问题答案: T_PAAMAYIM_NEKUDOTAYIM是PHP使用的双冒号范围解析–:: 快速浏览一下您的代码,我认为这一行: 应该 第一种是静态调用方法的方式-如果$

  • 作为一个极简的示例,此代码并不恐慌 但是,直接用recover替换匿名函数会引起恐慌

  • 问题内容: 我读到Linux内核是抢占式的,这与大多数Unix内核不同。那么,内核抢占到底意味着什么呢? 一些类比或示例将比纯理论解释更好。 添加2018年1月1日-11:00 AM 抢占式只是多任务处理的一种范例。还有其他类似协作多任务处理。通过比较它们可以更好地理解。 问题答案: 想象一下抢占式多任务的简单视图。我们有两个用户任务,它们都一直在运行,而没有使用任何I / O或执行内核调用。这两