anonymous@RULINUX.NET~# Last login: 2025-02-24 02:11:14
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Инструменты для отладки драйверов ядра Линукс

Всем привет!

Я сделал пару инструментов для отладки драйверов. Всегда есть проблема отладки драйверов усеченного Линукса. Оба инструманта сделаны следующим образом: Простой клиент ставится на отлаживаемый компьютер, где и запускается как UDP сервер. На удаленном компьютере запускается Python GUI приложение. Один инстромент позволяет читать и писать в память/регистры. Второй трассирует функции ядра. Очень просто установить. Питон выбран дла кроссплатформенности. Клиент доступа к памяти написам на C. Его надо кросс-компилятором скомпилировать.

Доступ к регистрам: https://github.com/stepanovr/linuxreg2/tree/main

Трасировка: https://github.com/stepanovr/Linux_kernel_trace

Пожелания по улучшению инструментов приму с благодарностью.

babay(*) (2025-02-14 00:27:11)

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36

[Ответить на это сообщение]
avatar
Скрыть

Re:Инструменты для отладки драйверов ядра Линукс

Крутой!

А чем это лучше встроенных отладочных возможностей ядра?



Я точно не помню, как именно, но ядро же может быть gdbservr.

anonymous(*)(2025-02-14 04:10:30)

Mozilla/5.0 (Android 10; Mobile; rv:135.0) Gecko/135.0 Firefox/135.0
avatar
Скрыть

Re:Инструменты для отладки драйверов ядра Линукс

Это и есть использование отладочных возможностей ядра. Просто вручную надо много разных вещей писать в разные псевдофайлы, а это делает все, но в более удобной форме.

Надо будет улучшить трассировщик. Он долго ждет сообщения от удаленного компьютера. Но можно ставить большое время и смотреть трассировку в реальном времени. Напишу как это делать в описании.

На target мащине открыть другое окно терминала и исполнить как суперюзер: cat /sys/kernel/debug/tracing/trace_pipe

babay(*)(2025-02-15 05:00:52)

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
avatar
Скрыть

Re:Инструменты для отладки драйверов ядра Линукс

Я точно не помню, как именно, но ядро же может быть gdbservr.

На отлаживаемом линуксе можно запустить gdbserver, что позволит присоединиться к нему с удаленного компьютера при помощи gdb или его графигеским вариантом ddd и отлаживать приложения. Вроде как ядро тоже можно так отлаживать, но я никогда не пробовал.

Чем лучше.

В ядре есть множество средств отладки в debugfs. Надо просто каким-то образом их организовать, чтобы нажал кнопку и всея последовательность передалась.

На слабеньком Линуксе отлаживаемой машины, легко стартануть простенький сервер, а на удаленной можно и программу посложнее с GUI.

Python легко бежит на раных платформах. Никакой специальной подготовки не тербуется кроме разрешения некоторых кнфигураций ядра, но если отлаживается драивер или ядро, то это по любому хорошо работает и не представляет трудностей как бывает с не той версией библиотеки, которая нужна для компилляции отладочного инструмента.

babay(*)(2025-02-15 06:08:15)

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!