2012-05-18 56 views
1

我將gdb連接到虛擬機的內核並嘗試調試內核模塊。我可以連接到虛擬機。我有內核代碼的符號信息,並且可以很好地遍歷內核代碼。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. 

這是什麼意思?

回答

0

的部分答案:

用GDB 7.1,重新編譯與-gdwarf-2內核和內核模塊,並與-O0模塊似乎已經完成了帽子戲法。我不確定它是什麼或爲什麼。