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

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
asasasdd
рядовой
Сообщения: 13
Зарегистрирован: 2011-09-16 15:29:01

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

Непрочитанное сообщение asasasdd » 2013-03-07 17:02:58

Нашёл ситуацию, при воспроизведении которой от обычного пользователя FreeBSD (9.1) молча уходит в ребут.
Хочу сам разобраться почему такая ситуация возникает.
Программировать умею, но системным программированием не занимался. Чем отлаживать ядро тоже не представляю.
Кто-нибудь может помочь?
Последний раз редактировалось f_andrey 2013-03-08 5:28:42, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
res251
мл. сержант
Сообщения: 87
Зарегистрирован: 2012-02-26 0:03:34
Откуда: UA
Контактная информация:

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

Непрочитанное сообщение res251 » 2013-03-07 18:58:50

DDB - отладчик уровня ядра в FreeBSD
gdb
Прочитать руководство для разработчиков в FreeBSD, потренироватся анализировать core файлы
Hастоящий админ знает только одно оскорбление - "ты юзер".
DANGER: DESKTOP FreeBSD USER

asasasdd
рядовой
Сообщения: 13
Зарегистрирован: 2011-09-16 15:29:01

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

Непрочитанное сообщение asasasdd » 2013-03-07 19:54:09

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

Аватара пользователя
res251
мл. сержант
Сообщения: 87
Зарегистрирован: 2012-02-26 0:03:34
Откуда: UA
Контактная информация:

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

Непрочитанное сообщение res251 » 2013-03-07 21:14:05

лог сохрани и документацию для разработчиков прочти, core для тренировки
узнай что такое брекпоинт и так далее
прочти книги, очень советую Мет Теллес "Искуство отладки" и Джесс Либерти "Искусство отладки"
Hастоящий админ знает только одно оскорбление - "ты юзер".
DANGER: DESKTOP FreeBSD USER

asasasdd
рядовой
Сообщения: 13
Зарегистрирован: 2011-09-16 15:29:01

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

Непрочитанное сообщение asasasdd » 2013-03-07 21:25:48

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

Аватара пользователя
res251
мл. сержант
Сообщения: 87
Зарегистрирован: 2012-02-26 0:03:34
Откуда: UA
Контактная информация:

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

Непрочитанное сообщение res251 » 2013-03-07 21:35:49

как лог чего, отладки, ты знаешь модуль, приатачся к нему и иследуй
я б так сделал
Hастоящий админ знает только одно оскорбление - "ты юзер".
DANGER: DESKTOP FreeBSD USER

asasasdd
рядовой
Сообщения: 13
Зарегистрирован: 2011-09-16 15:29:01

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

Непрочитанное сообщение asasasdd » 2013-03-07 23:46:06

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

Аватара пользователя
res251
мл. сержант
Сообщения: 87
Зарегистрирован: 2012-02-26 0:03:34
Откуда: UA
Контактная информация:

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

Непрочитанное сообщение res251 » 2013-03-08 0:05:04

http://www.freebsd.org.ua/doc/ru_RU.KOI ... BUG-OBTAIN
я же писал выше почитай про Руководство FreeBSD для разработчиков
читай
Hастоящий админ знает только одно оскорбление - "ты юзер".
DANGER: DESKTOP FreeBSD USER

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

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

Непрочитанное сообщение FreeBSP » 2013-03-08 0:07:57

когда падает программа - она вываливается в корку
ядро банально не может вывалиться в корку поскольку может статься так что не будет работать драйвер дисков/планировщик/меммен
поэтому корка ядра вываливается в своп и там остается, потом скидывается в файл. читать http://www.freebsd.org/doc/ru/articles/ ... relim.html
выпрыгнуть из рабочей системы в отладчик ядра можно, например написать простейший модуль ядра, который поделит это самое ядро на ноль. вроде в сисконс была комбинация для выхода в ддб, системный вызов есть для того чтобы уронить ядро. в отладочных целях, разумеется
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
skeletor
майор
Сообщения: 2486
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

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

Непрочитанное сообщение skeletor » 2013-03-11 14:45:11

А можно узнать, что за ситуация? Чисто спортивный интерес.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"