Linux内核错误panic oops
1、panic
当内核遇到严重错误的时候,内核panic,立马崩溃。死机。
2、oops
oops是内核遇到错误时发出的提示“声音”,oops有时候会触发panic,有时候不会,而是直接杀死当前进程,系统可以继续运行。
比如说内核态下的段错误,当内核设置了panic_on_oops=1的时候,oops会触发panic。【panic_on_oops的值在内核编译的时候配置,可以在/proc/sys/kernel/panic_on_oops查看值,同时可以使用sysctl修改】
当panic_on_oops=0的时候,如果错误发生在中断上下文,oops也会触发panic。如果错误只是发生在进程上下文,这个时候只需要kill当前进程。【中断上下文包括以下情况:硬中断、软中断、NMI】。
oops的时候内核还可以运行,只是可能不稳定,这个时候,内核会调用printk打印输出内核栈的信息和寄存器的信息。
oops提示:
[ 263.336138] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 263.342790] pgd = d4a44000 [ 263.345467] [00000000] *pgd=566db831, *pte=00000000, *ppte=00000000 [ 263.351708] Internal error: Oops: 817 [#1] PREEMPT SMP [ 263.356826] Modules linked in: hello(+) [ 263.360647] CPU: 0 Not tainted (3.0.15 #20) [ 263.365165] PC is at hello_init+0x18/0x20 [hello] [ 263.369856] LR is at do_one_initcall+0x3c/0x190 [ 263.374361] pc : [<bf002018>] lr : [<c003e684>] psr: 60000013 [ 263.374365] sp : d4a17f18 ip : d4a17f28 fp : d4a17f24 [ 263.385817] r10: 00000000 r9 : d4a16000 r8 : c0045ae8 [ 263.391025] r7 : 0000534b r6 : 00000000 r5 : bf000034 r4 : c096f840 [ 263.397536] r3 : 00000000 r2 : 00000001 r1 : d4a17f28 r0 : 00000000 [ 263.404047] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 263.411163] Control: 10c5387d Table: 54a4404a DAC: 00000015 [ 263.416891] [ 263.416893] LR: 0xc003e604:
from: https://blog.csdn.net/weixin_38812277/article/details/95939853
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
2020-04-26 内存管理中关于Movable的理解