【发布时间】:2013-11-23 00:22:52
【问题描述】:
如果我得到一个内核 oops,下面的 0xac/0x2b8 是什么意思?另外,如何获取函数所在文件中的行号?这是 ARM 架构上的 linux。
PC 在 get_next_timer_interrupt+0xac/0x2b8
【问题讨论】:
标签: linux linux-kernel linux-device-driver embedded-linux
如果我得到一个内核 oops,下面的 0xac/0x2b8 是什么意思?另外,如何获取函数所在文件中的行号?这是 ARM 架构上的 linux。
PC 在 get_next_timer_interrupt+0xac/0x2b8
【问题讨论】:
标签: linux linux-kernel linux-device-driver embedded-linux
内核可能需要启用各种调试选项,但“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 Kernel 并在内核源代码中找到有问题的行。当然,Linux内核必须用调试符号编译。
【讨论】: