2016-05-05 2 views
0

Мне интересно, можно ли отлаживать загружаемый модуль ядра.Отладка загружаемого модуля ядра

Примечание. В настоящее время я пытаюсь использовать это в Linux 2.0.18. Я следил за этим замечательным tutorial. Поскольку параметры конфигурации ядра CONFIG_PROC_KCORE и CONFIG_DEBUG_INFO, похоже, недоступны в этой версии ядра, я добавил -g -gdwarf в CFLAGS в Makefile, перекомпилировал ядро ​​и модули и перезагрузил.

Затем я могу запустить gdb vmlinux /proc/kcore, а затем p jiffies, который дает мне $1 = 1470917.

Вот где я начинаю заблудиться, также потому, что на этой версии ядра нет /sys/module/gdb1/sections, так как требуется отладка загруженного модуля.

Так что я просто пытался загрузить символы модуля «п»:

(gdb) symbol-file modules/ne.o

который загружает символы после подтверждения с «у». Тогда я поставил точку останова:

(gdb) break ne.c:148 
Breakpoint 1 at 0xa: file ne.c, line 148. 

Теперь я хотел бы сделать modprobe ne и достичь точки останова, но я думаю, что я полностью на неверном пути.

Возможно ли вообще? Даже если он не находится на таком старом ядре, я был бы рад узнать, как отлаживать модуль, загружаемый в текущее ядро.

ответ

1

В самом документе, с которым вы связываете состояния, вы не можете использовать точки останова при отладке. В противном случае вы можете случайно заблокировать ядро ​​(например, что, если в потоке, блокирующем точку останова, есть спин-блокировка, которую отладчик должен выполнить для проверки потока?), Также нет стабильного состояния, так как ядро ​​должно продолжать работать.

Я могу только предположить, почему этот метод был описан. Я думаю, что много лет назад выбора не было, когда у нескольких людей было аппаратное обеспечение, поддерживающее виртуализацию или несколько машин для отладки удаленно.

Путь к использованию - использовать что-то вроде qemu и прикрепить к vm от хоста. http://wiki.osdev.org/Kernel_Debugging

Кроме того, для аутопсии отладки вы можете использовать https://people.redhat.com/anderson/crash_whitepaper/

+0

похлопали себя по плечу за вид записки на контрольных точках ... –

Смежные вопросы