Перевод этой страницы еще не завершен. Пока это не произойдет, незавершенные части будут на английском.
Содержание
Получение аккаунта в Trac
Создание отчёта об ошибке
Ошибки приложений
Ошибки серверов
Ошибки ядра
Царство отладки ядра - KDL
Системный журнал
Вывод отладочной информации на экран
Аппаратные ошибки/Ошибки в драйверах
Что дальше?

Отчёт об ошибках (багах)

Так как наши разработчики не в состоянии проверить все комбинации компьютерных комплектующих и программных средств при их работе в Haiku, то мы полагаемся на пользователей, надеясь, что вы сообщите нам об обнаруженных ошибках, которых, ввиду молодости Haiku, может быть немало. Мы будем благодарны вам за потраченное на составление отчёта время, только вместе мы сможем сделать Haiku лучше.

Для продуктивной работы c системой отслеживания ошибок (багтрекером) важно соблюдать принятый в нём этикет.

index Получение аккаунта в Trac

Чтобы создать новый багрепорт, у вас должен быть заведён аккаунт в багтрекере Haiku.
Создавая новый аккаунт обязательно введите адрес электронной почты, так как на него будут приходить все сведения, связанные с изменением багрепорта. Убедитесь, что приходящие с багтрекера письма не помечаются как спам, так как это вполне возможно.

index Создание отчёта об ошибке

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

index Ошибки приложений

When an application crashed, you can either save a report or write a core file (both saved to the Desktop) that you can attach to a bugreport, or you can evoke the Debugger.

index Ошибки серверов

When vital servers like the app server, the registrar or the input server crash, you won't see the usual crash alert. Instead the whole screen will be cleared white and the Debugger will be started in text-mode, its output appearing directly on screen. Likely you will still be able to move the mouse, which will overwrite the white and Debugger output on screen. Applications still running (like ProcessController or the clock in the Deskbar) might also draw over the debugger output on screen.
Besides everything being more ugly and inconvenient, basically the same applies as for application bugs. Most importantly procure a back trace (bt command). You may need to take a picture of the screen with a digital camera, since you won't be able to copy the text anywhere.
Depending on what exactly crashed, you can try to save a crash report on the Desktop with save-report or write-core for a core file, and then press the power button once to try shutting cleanly down. If the power button doesn't work, there are also the commands shutdown and reboot.

index Ошибки ядра

Ошибки ядра обычно вызывают наиболее серьезные последствия и в тоже время их сложнее отлаживать. Существуют различные типы симптомов, которые скорее всего указывают на ошибку в ядре или на проблему с каким-либо драйвером:

Заметьте, что хотя только последний пункт указывает на проблему связанную с оборудованием, все остальные симптомы могут также быть вызваны ошибкой в драйвере оборудования. Если вы подозреваете, что какое-то устройство или его драйвер могут быть как-то связаны с наблюдаемой проблемой, то проверьте изменится что-либо после отключения устройства или удаления его драйвера. Например если вы подозреваете Wifi, то вы можете найти опцию в BIOS для его отключения. Если же такой опции нет, то вы можете удалить соответствующий Wifi драйвер (из папки /boot/system/add-ons/kernel/drivers/bin).

index Царство отладки ядра - KDL

If the system hasn't entered KDL by itself, you can do that intentionally by invoking the keyboard shortcut ALT SysReq D (SysReq being the Print key, normally).
Note that in KDL your keyboard may not work. PS/2 keyboards always do, with USB keyboards it depends on the type of USB controller (UHCI/EHCI). Generally, the keyboard should be plugged into the port directly, not via any hubs. In some circumstances, the keyboard only works if one has entered KDL via the keyboard shortcut at least once. USB OHCI is not supported at the moment.

Сам по себе KDL является некой оболочкой. Вы можете выполнять команды, которые выводят информацию о системе. Следующие команды могут быть интересны:

bt (aka sc) Prints a back trace (aka stack crawl). If the system entered KDL on its on volition, a back trace is normally printed automatically. Enter the command if that didn't happen or part of it is obscured (e.g. when the stack trace is so long that it wrapped around) and your only way of providing the information to developers is by taking a picture of the screen.
ints int - отобразит обработанные и необработанные прерывания.
co (синоним continue) выведет систему из отладчика ядра продолжит нормальную работу Haiku, если это возможно.
reboot Немедленно перезагрузит систему. Вы потеряете все несохраненные данные и те, что были сохранены, но еще не успели записаться из памяти обратно на диск.

Для более подробной информации смотрите статью Добро пожаловать в Царство Отладки Ядра.

The KDL output is written to the serial port (if you have one, a respective cable, and a second computer to connect with, you can capture the output there via a terminal program) and to the syslog. If you can't leave KDL it won't be written to the syslog file, though. There's a boot loader debug option that allows you to capture it nonetheless (see below).

You can generate QR codes from KDL output that can then be converted to text using smartphones or similar devices. See the blog post QR Encode your KDL Output on how to get data out of KDL using that feature.

index Системный журнал

This is the preferred method for extracting information from a non-booting system.
The syslog (short for system log) contains valuable information about what has happened in your system, including the output of KDL sessions. It's usually a good idea to attach it to the kernel related Trac ticket. The syslog is written to the file /boot/system/var/log/syslog. Since writing to a file requires a working system, the most recent output might not have made it to the syslog when a kernel problem occurs (particularly on spontaneous reboots or uncontinuable KDL sessions).

The option Enable debug syslog in the boot loader's Debug menu makes the syslog persistent. If the option Save syslog from previous session during boot is activated in the boot loader options (as it is by default), you'll find the syslog of your last session as /boot/system/var/log/previous_syslog.
If you're not able to boot to get to the previous_syslog, you have to enter the boot loader menu by holding down SHIFT while booting.
In the boot loader's Debug menu you should find the entries Display syslog from previous session and Save syslog from previous session. The former displays the syslog on screen, the latter allows you to save it as a file to disk. Note that at the moment only FAT32 volumes are supported for saving the file. If you want to use a USB stick, but have plugged it in too late so that it isn't recognized yet, you can reset the machine and re-enter the boot loader menu. Note: Don't accidentally boot any operating system or the data will be lost.

index Вывод отладочной информации на экран

Функция вывода отладочной информации на экран полезна для отладки только специфичных проблем, она также имеет известные проблемы с таймингами. Используйте ее только если это очень необходимо.
Ее использование имеет смысл только когда Haiku не загружается на вашем компьютереи функция Debug syslog option по какой-то причине не работает. Перед появлением загрузочного экрана зажмите SHIFT для входа в меню загрузчика. Выберите Select safe mode options. Почти в самом низу будет опция, [ ] Enable on screen debug output. (Имейте в виду, что можно включить остальные опции, чтобы Haiku загрузилась. Если Haiku будет загружаться только при включении одной или более опций, не забудьте указать какие именно.)
И наконец выбарите Return to main menu, а затем then Continue booting.
Одна страница текста или более появятся на экране, только последние несколько строк нужно включать в ваш багрепорт. Дополнительная информация имеется в статье Загрузчик.

index Аппаратные ошибки/Ошибки в драйверах

Если вы столкнулись с ошибкой работы оборудования и/или драйвера, то вы должны приложить к вашему багрепорту следующую информацию в виде текстовых файло:

- listdev listdev - подробный список оборудования, включающий ID производителей и отдельных устройств, схожа с командами Linux lshw и lspci.
- listusb -v listusb -v - используйте при ошибке, связанной с USB, аналогична команде lsusb.
- open /var/log/syslog The primary system log used by Haiku, see Syslog above, akin to on screen debugging during boot. With the open command you can crop down the relevant part of the syslog in a text editor.
- listimage | grep drivers/ listimage | grep drivers/ - список всех загруженных драйверов.
- usb_hid_report In case of USB input devices, add the /tmp/usb_hid_report_descriptor_*.bin file.
- ints ints - доступна только в режиме Царства отладки ядра (Kernel Debugging Land - KDL) (см. выше). Отображает используемые прерывания. Не должно быть слишком много устройств, использующих одно прерывание.
- On screen debug output (a safe mode boot time option, see above).

Все эти команды вводятся в терминале, если не указано иное. Если добавить > output.txt после команды, то результат её работы сохранится в текстовый файл "output.txt", который можно прикрепить к своему сообщению об ошибке или отправить по электронной почте.

index

После того как багрепорт отправлен, разработчик рассмотрит вашу ошибку и попытаться классифицировать ее. Помните, что мы все добровольцы, и иногда багрепорт может оставаться без ответа некоторое время. Добавление новой информации к этой ошибке помогает исправить её быстрее, но не пытайтесь увеличить её значимость, добавляя не относящиеся к делу комментарии.

Помните, что отправка багрепорта, на который вы потратили некоторое время - это ещё полдела, и желательно чтобы вы следили за его состоянием. Только в этом случае вы внесёте ощутимую часть в процесс развития Haiku. У разработчиков могут возникнуть вопросы, относящиеся к багу во время его исправления, пожалуйста, не игнорируйте их, постаравшись как можно подробней ответить. Считайте свое участие законченным, только когда ошибка приобретёт статус "исправлено (fixed)".