天天看點

GDB調試崩潰資訊kernel panicGDB調試崩潰資訊kernel panic

GDB調試崩潰資訊kernel panic

------------[ cut here ]------------

Kernel BUG at c016bcbe [verbose debug info unavailable]

Internal error: Oops - BUG: 0 [#1] PREEMPT THUMB2


CPU: 0 PID: 551 Comm: MdbShmServer Tainted: P           O    4.9.227 #7

Hardware name: SStar Soc (Flattened Device Tree)

task: c2ad0000 task.stack: c1ae2000

PC is at MDrv_MIU_Protect_interrupt+0x1a/0x2c

LR is at HAL_MIU_GetHitProtectInfo+0xd1/0x110

pc : [<c016bcbe>]    lr : [<c016c4ed>]    psr: 600101b3


[<c016bcbe>] (MDrv_MIU_Protect_interrupt) from [<c0034e1b>] (__handle_irq_event_percpu+0x2d/0xaa)

[<c0034e1b>] (__handle_irq_event_percpu) from [<c0034ea7>] (handle_irq_event_percpu+0xf/0x30)

[<c0034ea7>] (handle_irq_event_percpu) from [<c0034eef>] (handle_irq_event+0x27/0x3c)

[<c0034eef>] (handle_irq_event) from [<c0036b73>] (handle_fasteoi_irq+0x6b/0xb4)

[<c0036b73>] (handle_fasteoi_irq) from [<c003474d>] (generic_handle_irq+0xd/0x16)

[<c003474d>] (generic_handle_irq) from [<c0034a73>] (__handle_domain_irq+0x57/0x68)

[<c0034a73>] (__handle_domain_irq) from [<c00092a9>] (gic_handle_irq+0x31/0x48)

[<c00092a9>] (gic_handle_irq) from [<c000fce5>] (__irq_svc+0x65/0xac)

Exception stack(0xc1ae39b0 to 0xc1ae39f8)

Code: fff4 f89d 3000 b103 (de02) 4802 
---[ end trace 0f494d05becfaa7d ]---
Kernel panic - not syncing: Fatal exception in interrupt
---[ end Kernel panic - not syncing: Fatal exception in interrupt
           

截取的一段

kernel panic

資訊

其中通過

PC

指針可以知道出錯位址為

c016bcbe

或者用函數位址加偏移量

MDrv_MIU_Protect_interrupt+0x1a

使用GDB 直接對其對應ko或可執行檔案調試,以下幾種方法均可

顯示哪一行

(gdb) b *0xc016bcbe
(gdb) b *(MDrv_MIU_Protect_interrupt+0x1a)
           

顯示一段

(gdb) l *(0xc016bcbe) 
(gdb) l *(MDrv_MIU_Protect_interrupt+0x1a) 
           

顯示反彙編

(gdb) disassemble 0xc016bcbe 
           

對于動态編入核心的子產品 出現 kernel panic 可以使用

objdump -S

反彙編,沒有

- g

編譯出不來對應code,重新

- g

編譯再

objdump -S

就可以對照看了

繼續閱讀