Отладка модулей ядра в Linux
От: ivrubano  
Дата: 03.05.11 14:27
Оценка:
Отлаживаю драйвер для линукс. При каждом NULL dereference exception ядро падает. Приходиться перезагружаться. Занимает гиганское время. Пока 3-4 минуты ждёшь уже забываю в чём была проблема. А как вы решали такую проблему?
Re: Отладка модулей ядра в Linux
От: MShura  
Дата: 03.05.11 15:01
Оценка:
I>Отлаживаю драйвер для линукс. При каждом NULL dereference exception ядро падает. Приходиться перезагружаться. Занимает гиганское время. Пока 3-4 минуты ждёшь уже забываю в чём была проблема. А как вы решали такую проблему?

crash dump пишется в messages.
После перезагрузки читаешь его.
Для простоты напиши скриптик, который чистит файл messages перед каждым тестированием модуля

Без продуманного логгирования всё равно не обойдешься.
Поэтому рекомендую не откладывать логгирование в долгий ящик.
Re: Отладка модулей ядра в Linux
От: ДимДимыч Украина http://klug.org.ua
Дата: 03.05.11 15:11
Оценка:
Здравствуйте, ivrubano, Вы писали:

I>Отлаживаю драйвер для линукс. При каждом NULL dereference exception ядро падает. Приходиться перезагружаться. Занимает гиганское время. Пока 3-4 минуты ждёшь уже забываю в чём была проблема. А как вы решали такую проблему?


Логи и еще раз логи. Полезно включить KALLSYMS, BUG, DEBUG_KERNEL, DEBUG_INFO, PAGE_POISONING, RUNTIME_DEBUG и т.д.
Еще есть kgdb, но им пользоваться не приходилось.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re: Отладка модулей ядра в Linux
От: rtbsd http://rtbsd.org/
Дата: 03.05.11 15:26
Оценка:
Здравствуйте, ivrubano, Вы писали:

I>Отлаживаю драйвер для линукс. При каждом NULL dereference exception ядро падает. Приходиться перезагружаться. Занимает гиганское время. Пока 3-4 минуты ждёшь уже забываю в чём была проблема. А как вы решали такую проблему?

Так KDB(BSD)/KGDB(linux) же?
Все написано там
Re: Отладка модулей ядра в Linux
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 03.05.11 16:09
Оценка: 3 (1) +1
Здравствуйте, ivrubano, Вы писали:

I>Отлаживаю драйвер для линукс. При каждом NULL dereference exception ядро падает. Приходиться перезагружаться. Занимает гиганское время. Пока 3-4 минуты ждёшь уже забываю в чём была проблема. А как вы решали такую проблему?


KVM или другая виртуалка.
UserModeLinux (не для всех видов драйверов; но для FS, сети, IPC, etc. уже пойдёт)
Ну и против "забываю", конечно, serial console, снимки экрана виртуалки, netconsole, remote syslog, etc.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.