kernel panic 表示Linux kernel走到了一個不知道該怎麼走下一步的狀況,一旦到這個情況,kernel就儘可能把它此時能獲取的全部信息都打印出來,至於能打印出多少信息。
首先看一下出錯的kernel panic 現象,下面是一個kernel panic的出錯log:
如上崩潰信息,可知發生崩潰的函數爲proslic_api_char_dev_init函數,偏移爲0xf4的位置。這裏介紹2種方法處理這個情況,分別針對編譯爲模塊的驅動和編譯進內核的驅動。
1. 如果發生的錯誤函數是屬於驅動模塊的,執行:arm-none-linux-gnueabi-objdump -D first_drv.ko > first_drv.dis
2. 如果發生的錯誤函數是屬於內核的,這個時候和發生在模塊裏類似,不過這裏要反彙編整個內核:arm-none-linux-gnueabi-objdump -D vmlinux > vmlinux.dis
也可以通過這個教程使用gdb來定位錯誤行數:https://blog.csdn.net/lickylin/article/details/19172725