Мне интересно, можно ли отлаживать загружаемый модуль ядра.Отладка загружаемого модуля ядра
Примечание. В настоящее время я пытаюсь использовать это в 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
и достичь точки останова, но я думаю, что я полностью на неверном пути.
Возможно ли вообще? Даже если он не находится на таком старом ядре, я был бы рад узнать, как отлаживать модуль, загружаемый в текущее ядро.
похлопали себя по плечу за вид записки на контрольных точках ... –