Разработка ядра Linux
Шрифт:
Магическая клавиша
Использование магической клавиши
В дополнение к конфигурационному параметру существует вызов
Список возможных комбинаций клавиш можно получить с консоли путем нажатия комбинации клавиш
Если машина заблокирована очень сильно, то она может не отвечать на магические комбинации клавиш
Таблица 18.2. Список поддерживаемых команд SysRq
| Команда | Описание |
|---|---|
SysRq-b | Перегрузить машину (reboot) |
SysRq-e | Послать сигнал SIGTERM всем процессам, кроме процесса init |
SysRq-h | Отобразить на консоли помощь по использованию комбинаций клавиш SysRq |
SysRq-i | Послать сигнал SIGKILL всем процессам, кроме процесса init |
SysRq-k | Клавиша безопасного доступа: завершить все процессы, связанные с текущей консолью |
SysRq-l | Послать сигнал SIGKILL всем процессам, включая процесс init |
SysRq-m | Отобразить на консоли дамп информации по использованию памяти |
SysRq-o | Завершить работу машины (shutdown) |
SysRq-p | Отобразить на консоли дамп регистров памяти |
SysRq-r | Отключить прямой режим работы клавиатуры (raw mode) |
SysRq-s | Синхронизировать данные смонтированных файловых систем с дисковыми устройствами |
SysRq-t | Отобразить на консоли дамп информации о заданиях |
SysRq-u | Размонтировать все смонтированные файловые системы |
В файле
Сага об отладчике ядра
Многие разработчики ядра давно высказываются о необходимости встроенного в ядро отладчика. К сожалению, Линус не желает видеть отладчик ядра в своем дереве исходного кода, Он уверен, что использование программ-отладчиков приводит к плохому исправлению ошибок неправильно информированными разработчиками. Никто не может поспорить с его логикой — исправления ошибок, построенные на основании хорошего понимания кода скорее всего будут верными. Тем не менее большинство разработчиков ядра все же нуждаются в официальном отладчике, встроенном в ядро. Поскольку такая возможность навряд ли появится в ближайшее время, то взамен было разработано несколько заплат, которые добавляют поддержку отладчика в стандартном ядре. Не смотря на то, что это внешние и неофициальные заплаты, они являются мощными инструментами с высокой функциональностью. Перед тем, как обращаться к этим решениям, посмотрим, на сколько нам может помочь стандартный отладчик ОС Linux — gdb.
Использование отладчика gdb
Для того, чтобы мельком заглянуть внутрь работающего ядра можно использовать стандартный отладчик GNU. Запуск отладчика для работы с ядром почти ни чем не отличается от отладки выполняющегося процесса.
Файл
Опциональный параметр
Можно пользоваться практически всеми командами программы gdb для чтения информации. Например, чтобы напечатать значение переменной можно воспользоваться командой.
Для того, чтобы дизассемблировать код функции можно выполнить следующую команду.
Если ядро было скомпилировано с указанием флага -g (необходимо добавить
К сожалению, на этом заканчиваются возможности использования отладчика gdb. С его помощью никак нельзя изменять данные ядра. Нет возможности пошагово выполнять код ядра, или устанавливать точки остановки (breakpoint). Невозможность изменять структуры данных ядра — это большой недостаток. Хотя очень полезно иметь возможность дизассемблировать код функций, еще более полезной была бы возможность изменять структуры данных.
Отладчик kgdb
Отладчик kgdb — это заплата ядра, которая позволяет с помощью отладчика gdb отлаживать ядро по линии последовательной передачи. Для этого требуется два компьютера. На первом выполняется ядро с заплатой kgdb. Второй компьютер используется для отладки ядра по линии последовательной передачи (нуль-модемный кабель, соединяющий две машины) с помощью gdb. Благодаря отладчику kgdb полностью доступен весь набор функций gdb: чтение и запись любых переменных, установка точек остановки, установка точек слежения (watch points), пошаговое исполнение и др.. Специальные версии kgdb даже позволяют вызывать функции.
Установка kgdb и линии последовательной передачи несколько сложная процедура, но если ее выполнить, то отладка ядра значительно упрощается. Заплата ядра также устанавливает большое количество документации в каталог
Несколько человек выполняют поддержку заплаты kgdb для различных аппаратных платформ и версий ядра. Поиск в Интернет — наилучший способ найти необходимую заплату для заданного ядра.
Отладчик kdb
Врубель
Жизнь в искусстве
Документальная литература:
биографии и мемуары
рейтинг книги
Хранилище
5. Лесовик
Фантастика:
фэнтези
рпг
рейтинг книги
Кодекс Крови. Книга ХVI
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Кодекс Охотника. Книга XXXIII
33. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
рейтинг книги
Гримуар темного лорда V
5. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Кодекс Охотника. Книга VIII
8. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Как прорастают зерна
Любовные романы:
современные любовные романы
рейтинг книги
Я спас СССР! том 1
1. Я спас СССР
Фантастика:
альтернативная история
рейтинг книги
КАМЕРГЕРСКИЙ ПЕРЕУЛОК
Фантастика:
фэнтези
рейтинг книги