根据内核Oops 定位代码

当内核出现Oops错误,如野指针导致的崩溃时,可以通过三种方法定位问题源头:1) 使用addr2line命令;2) 利用gdb进行调试;3) 查询内核符号表和反汇编信息。每种方法都有其适用场景,例如addr2line需确保编译器前缀一致,gdb则提供交互式调试,而符号表和反汇编定位可不依赖vmlinux。

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

内核开发时有时候出现Oops,例如一个野指针会导致内核崩溃,如运行时出现以下log:现在有三种方法可以找出具体出现野指针的地方

   5.438972] bells bells:  wm5102-aif1 <-> samsung-i2s.0 mapping ok
[    5.443812] bells bells: Failed to add route OPCLK->Sub CLK_SYS
[    5.450499] Unable to handle kernel NULL pointer dereference at virtual address 00000010
[    5.457770] pgd = c0004000
[    5.460504] [00000010] *pgd=00000000
[    5.463959] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[    5.469249] CPU: 3    Not tainted  (3.4.5-g092c4c5 #75)
[    5.474457] PC is at snd_soc_dai_set_sysclk+0x10/0x84
[    5.479481] LR is at bells_late_probe+0x60/0x198
[    5.484133] pc : [<c040faa0>]    lr : [<c0424030>]    psr: 60000013
[    5.484139] sp : d683bd58  ip : d683bd80  fp : d683bd7c
[    5.495579] r10: 00000000  r9 : c08a41f8  r8 : 00000000
[    5.500723] r7 : d62bf400  r6 : 000000
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值