linux arm oops,linux 内核出现 oops 如何调试

这篇博客记录了如何调试Linux ARM系统中遇到的kernel NULL pointer dereference错误。通过分析错误信息,找出PC和LR地址,利用gdb进行调试,并讲解了如何在内核编译时添加调试信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正儿八经上了半年的班了,也接触linux驱动几个月了,不过今天之前还是不会调试。今天也还是没有彻底学会。这篇博客主要是把今天的收获记录下来,方便以后参考。

我的内核版本是:4.9.88

我在3.14.52里面也实验过。

先贴我内核打印的错误信息:

Unable to handle kernel NULL pointer dereference at virtual address 00000004

pgd = 80004000

[00000004] *pgd=00000000

Internal error: Oops: 817 [#1] PREEMPT SMP ARM

Modules linked in: spi_lqd(O)

CPU: 1 PID: 96 Comm: spi1 Tainted: G           O 3.14.52-1.1.1_ga #235

task: a8326d00 ti: a82f6000 task.ti: a82f6000

PC is at spi_pump_messages+0xdc/0x480

LR is at _raw_spin_lock_irqsave+0x18/0x5c

pc : [<8041c40c>]    lr : [<8075bdc8>]    psr: 60070093

sp : a82f7f08  ip : 00000000  fp : a837ddcc

r10: 80d0f504  r9 : 00000001  r8 : a82f6000

r7 : a837ddb4  r6 : a837dc00  r5 : 80d0f504  r4 : a837dde8

r3 : a8902704  r2 : 00000000  r

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值