Страница 1 из 1

Как найти ошибку в ядре (модуле ядра)?

Добавлено: 2013-03-07 17:02:58
asasasdd
Нашёл ситуацию, при воспроизведении которой от обычного пользователя FreeBSD (9.1) молча уходит в ребут.
Хочу сам разобраться почему такая ситуация возникает.
Программировать умею, но системным программированием не занимался. Чем отлаживать ядро тоже не представляю.
Кто-нибудь может помочь?

Re: Как найти ошибку в ядре (модуле ядра)?

Добавлено: 2013-03-07 18:58:50
res251
DDB - отладчик уровня ядра в FreeBSD
gdb
Прочитать руководство для разработчиков в FreeBSD, потренироватся анализировать core файлы

Re: Как найти ошибку в ядре (модуле ядра)?

Добавлено: 2013-03-07 19:54:09
asasasdd
res251 писал(а):DDB - отладчик уровня ядра в FreeBSD
gdb
Прочитать руководство для разработчиков в FreeBSD, потренироватся анализировать core файлы
Как пользоваться gdb я представляю. Проблема в том, что core файл не создаётся при ребуте.
В идеале мне бы хотелось видеть следующее: воспроизвести ситуацию и оказаться в отладчике, который предотвратит ребут.

Re: Как найти ошибку в ядре (модуле ядра)?

Добавлено: 2013-03-07 21:14:05
res251
лог сохрани и документацию для разработчиков прочти, core для тренировки
узнай что такое брекпоинт и так далее
прочти книги, очень советую Мет Теллес "Искуство отладки" и Джесс Либерти "Искусство отладки"

Re: Как найти ошибку в ядре (модуле ядра)?

Добавлено: 2013-03-07 21:25:48
asasasdd
res251 писал(а):лог сохрани и документацию для разработчиков прочти, core для тренировки
узнай что такое брекпоинт и так далее
прочти книги, очень советую Мет Теллес "Искуство отладки" и Джесс Либерти "Искусство отладки"
Лог чего сохранить? core-файл не создаётся, система просто молча ребутится. Не штатно ребутится, а гаснет дисплей.
Я знаю что такое брейкпоинт.
За книги спасибо.

Re: Как найти ошибку в ядре (модуле ядра)?

Добавлено: 2013-03-07 21:35:49
res251
как лог чего, отладки, ты знаешь модуль, приатачся к нему и иследуй
я б так сделал

Re: Как найти ошибку в ядре (модуле ядра)?

Добавлено: 2013-03-07 23:46:06
asasasdd
res251 писал(а):как лог чего, отладки, ты знаешь модуль, приатачся к нему и иследуй
я б так сделал
Я не знаю что именно в ядре (или модуле ядра) вызывает ребут. Я знаю как эту ситуацию воспроизвести.
Кто-нибудь имеет практический опыт?

Re: Как найти ошибку в ядре (модуле ядра)?

Добавлено: 2013-03-08 0:05:04
res251
http://www.freebsd.org.ua/doc/ru_RU.KOI ... BUG-OBTAIN
я же писал выше почитай про Руководство FreeBSD для разработчиков
читай

Re: Как найти ошибку в ядре (модуле ядра)?

Добавлено: 2013-03-08 0:07:57
FreeBSP
когда падает программа - она вываливается в корку
ядро банально не может вывалиться в корку поскольку может статься так что не будет работать драйвер дисков/планировщик/меммен
поэтому корка ядра вываливается в своп и там остается, потом скидывается в файл. читать http://www.freebsd.org/doc/ru/articles/ ... relim.html
выпрыгнуть из рабочей системы в отладчик ядра можно, например написать простейший модуль ядра, который поделит это самое ядро на ноль. вроде в сисконс была комбинация для выхода в ддб, системный вызов есть для того чтобы уронить ядро. в отладочных целях, разумеется

Re: Как найти ошибку в ядре (модуле ядра)?

Добавлено: 2013-03-11 14:45:11
skeletor
А можно узнать, что за ситуация? Чисто спортивный интерес.