【问题标题】:Finding line number from Kernel oops PC从内核 oops PC 中查找行号
【发布时间】: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


【解决方案1】:

内核可能需要启用各种调试选项,但“addr2line”应该为您提供地址的文件名和行号。 http://elinux.org/Addr2line_for_kernel_debugging

【讨论】:

    【解决方案2】:

    表示get_next_timer_interrupt+0xac地址发生异常。 0xacget_next_timer_interrupt 过程中的偏移量。 0x2b8 表示发生异常的过程有多长时间(get_next_timer_interrupt)。

    你可以使用addr2line 来解码它,就像 skorgon 写的那样,或者使用objdump 命令来反汇编 Linux Kernel 并在内核源代码中找到有问题的行。当然,Linux内核必须用调试符号编译。

    【讨论】:

      猜你喜欢
      • 2015-03-08
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-15
      • 1970-01-01
      • 2016-11-06
      相关资源
      最近更新 更多