【问题标题】:gdb loses line number information (on kernel modules) after breakpointgdb 在断点后丢失行号信息(在内核模块上)
【发布时间】:2012-05-18 11:06:46
【问题描述】:

我正在将 gdb 连接到虚拟机的内核并尝试调试内核模块。我能够连接到虚拟机。我有内核代码的符号信息,可以单步执行内核代码。

当我为我的内核模块添加符号文件时(顺便说一下,无论我是在远程连接之前还是之后执行此操作),我都能够list <function_name> 关于函数的信息,直到我设置了一个断点;之后:

(gdb) b function_name
Breakpoint 1 at 0xffffffffa01d0074 (3 locations)
(gdb) list function_name
No line number known for function_name.

附加信息:

  • 主机和来宾都是 Fedora 16 64 位。
  • 我正在调试的内核是 3.0.8 - 请注意,此内核在具有不同环境和远程连接设置的先前 32 位设置上运行良好。
  • 我已经用 gdb 7.2 和 7.3.50 尝试过这个。

有什么想法吗?如果我什至能确定问题出在我的内核、内核模块编译、连接还是 gdb,那将有所帮助。

更新:使用 gdb 7.1,我得到以下信息:

...
(gdb) b function_name
/gdb/breakpoint.c:7903: internal-error: expand_line_sal_maybe: Assertion `found' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.

这是什么意思?

【问题讨论】:

    标签: debugging linux-kernel gdb gdbserver


    【解决方案1】:

    部分答案:

    使用 gdb 7.1,使用 -gdwarf-2 重新编译内核和内核模块,使用 -O0 的模块似乎已经成功了。我不确定它是哪个或为什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2021-09-07
      • 1970-01-01
      相关资源
      最近更新 更多