Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Цилюрик О.И. Модули ядра Linux
Назад Отладка в ядре Вперед

Некоторые мелкие советы в завершение

Чаще перезагружайте систему!

Отладка модулей ядра отличается от отладки пользовательского пространства тем, что очередное аварийное завершение теста модуля может оставлять «следы» в ядре, создавая тем малозаметные аномалии в поведении системы. Особенно часто это наблюдается, например, при отработке интерфейсов драйвера в файловую систему /proc.

Для того, чтобы избежать десятков часов бездарно потерянного времени, при работе над модулями перезагружайте время от времени ваш Linux, даже если вам кажется, что он совершенно нормально работает. После перезагрузки результаты повторения только-что выполненного теста могут радикально поменяться!

Используйте естественные POSIX тестеры

Здесь я имею в виду, что при отработке модуля всегда, прежде, чем начинать более жёсткое тестирование драйвера, проверьте его реакцию по чтению и запись на естественные POSIX тестеры: cat для чтения и echo для записи. В этом качестве могут быть полезны и другие стандартные утилиты Linux, например cp. Возможно, для обеспечения совместимости функционирования совместно с POSIX командами, вам потребуется добавить к драйверу дополнительную функциональность (например, отработка ситуации EOF), которая и не требуется конечными спецификациями на продукт. Но получение POSIX совместимости стоит затраченного дополнительного труда!

Тестируйте чтение сериями

Выполняя проверку операций read(), не ограничивайтесь одиночной операцией тестирования. Вместо этого проверяйте серию последовательных операций тестирования. Этим вы страхуетесь, что ваш драйвер не только нормально отрабатывает операцию, но и нормально восстанавливается после операции и готов к выполнению следующей. Другими словами, вместо одиночной операции cat (в простейшем случае) делайте несколько последовательных, сверяя их идентичность:

$ cat /dev/xxx

REZULT

$ cat /dev/xxx

REZULT

$ cat /dev/xxx

REZULT

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


Предыдущий раздел: Оглавление Следующий раздел:
Комплементарный отладочный модуль   Заключение