Следующие инструменты могут помочь вам отладить Linux ядра
Dynamic Probes является одним из популярных инструментов отладки для Linux, который разработанный IBM. Этот инструмент позволяет размещать «зонд» практически в любом месте в системе, как в пространстве пользователя, так и в ядре. Зонд состоит из некоторого кода (написанного на специализированном языке, ориентированном на стек), который выполняется, когда управление попадает в данную точку. Ресурсы о DProbes/Kprobes перечислены ниже
Linux Trace Toolkit - это патч ядра и набор связанных утилит, которые позволяют отслеживать события в ядре. Трассировка включает в себя информацию о времени и может создать достаточно полную картину того, что произошло за определенный период времени. Ресурсы LTT, LTT просмотра и LTT Next Generation
MEMWATCH является открытым инструментом обнаружения ошибок источника памяти. Он работает, определяя MEMWATCH в инструкции gcc и добавляя заголовочный файл к нашему коду. Благодаря этому мы можем отслеживать утечки памяти и повреждение памяти.Ресурсы, касающиеся MEMWATCH
ftrace является хорошей основой для трассировки ядра Linux. ftrace отслеживает внутренние операции ядра. Этот инструмент включен в ядро Linux в 2.6.27. Благодаря своим различным плагинам трассировки ftrace может быть нацелена на различные статические точки трассировки, такие как планирование событий, прерываний, преобразований ввода-вывода с памятью, переходов состояния процессора и операций, связанных с файловыми системами и виртуализацией. Кроме того, доступно динамическое отслеживание вызовов функций ядра, опционально ограничиваемое подмножеством функций с помощью глобусов, а также возможность генерации графиков вызовов и обеспечения использования стека. Вы можете найти хороший учебник по ftrace по адресу https://events.linuxfoundation.org/slides/2010/linuxcon_japan/linuxcon_jp2010_rostedt.pdf
ltrace - утилита для отладки в Linux, используемая для отображения вызовов, которые приложение пользовательского пространства делает для разделяемых библиотек. Этот инструмент можно использовать для отслеживания любого вызова динамической библиотеки. Он перехватывает и записывает вызовы динамической библиотеки, вызываемые выполненным процессом, и сигналы, полученные этим процессом. Он также может перехватывать и распечатывать системные вызовы, выполняемые программой.
KDB является отладчик в ядре ядра Linux. KDB следует за упрощенным интерфейсом в стиле оболочки. Мы можем использовать его для проверки памяти, регистров, списков процессов, dmesg и даже установки точек останова для остановки в определенном месте. Через KDB мы можем установить контрольные точки и выполнить некоторое базовое управление запуском ядра (Хотя KDB не является отладчиком исходного уровня). Несколько удобных ресурсов относительно KDB
KGDB предназначен для использования в качестве отладчика уровня источника для ядра Linux. Он используется вместе с gdb для отладки ядра Linux. Для использования kgdb требуются две машины. Одна из этих машин - машина для разработки, а другая - целевая машина. Ядро для отладки выполняется на целевой машине. Ожидается, что gdb можно использовать для «взлома» ядра для проверки памяти, переменных и просмотра информации о стеке вызовов, аналогичной тому, как разработчик приложения будет использовать gdb для отладки приложения. Можно разместить точки останова в коде ядра и выполнить некоторое ограниченное выполнение шага. Несколько удобных ресурсов относительно KGDB
Читайте также http://www.tldp.org/HOWTO/BootPrompt-HOWTO.html и http://www.linuxhomenetworking.com/wiki/index .php/Quick_HOWTO _: _ Ch07 _: _ The_Linux_Boot_Process –
действительно ли это соответствует последнему ядру? – San
Возможно, да. Почему бы и нет? –