如果我有一個內核oops,下面是0xac/0x2b8的含義?另外,如何獲取函數所在文件中的行號?這是ARM arch上的linux。從內核oops查找行號PC
PC是get_next_timer_interrupt + 0xac/0x2b8
如果我有一個內核oops,下面是0xac/0x2b8的含義?另外,如何獲取函數所在文件中的行號?這是ARM arch上的linux。從內核oops查找行號PC
PC是get_next_timer_interrupt + 0xac/0x2b8
內核可能需要不同的調試選項啓用,但「addr2line」應該給你的文件名和行號的地址。 http://elinux.org/Addr2line_for_kernel_debugging
這意味着異常發生在get_next_timer_interrupt+0xac
地址。 0xac
是get_next_timer_interrupt
程序中的偏移量。 0x2b8
表示異常發生的過程有多長(get_next_timer_interrupt
)。
你可以使用addr2line
來解碼它,如skorgon所寫,或者使用objdump
命令來反彙編Linux內核,並在內核源代碼中找到有問題的行。當然,Linux內核必須使用調試符號進行編譯。
另請參閱此問題的答案:http://stackoverflow.com/questions/6151538/addr2line-on-kernel-module – Eugene