2012-05-18 2 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.

Update: С помощью 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, кажется, сделали свое дело. Я не уверен, что это или почему пока.