Obsah |
Získanie účtu v Trac Vytvorenie hlásenia o chybe Chyby aplikácií Chyby serverov Chyby jadra Kernel Debugging Land - KDL Syslog Výstup ladenia na obrazovku Chyby hardvéru/ovládačov Čo ďalej? |
Nahlasovanie chýb
Keďže je nemožné, aby naši vývojári otestovali každú kombináciu hardvéru či každý možný spôsob interakcie s operačným systémom, spoliehame sa na našich používateľov, aby nám poslali spätnú väzbu ako veci fungujú u nich. Keďže Haiku je stále relatívne mladé, je veľmi pravdepodobné, že narazíte na chyby. ďakujeme vám za čas, ktorý venujete ich nahláseniu. Spolu môžeme Haiku vylepšovať, trochu po troche.
Aby bol náš nástroj na sledovanie chýb fungoval efektívne, je nevyhnutné dodržiavať Etiketu nástroja na sledovanie chýb.
Získanie účtu v Trac
Aby ste mohli založiť hlásenie, musíte mať účet v Nástroji na sledovanie chýb Haiku.
Pri vytváraní účtu určite poskytnite vašu emailovú adresu, pretože je potrebné získať základné oprávnenia na zmenu hlásení. Určite sa krátko potom pozrite aj do spamového priečinka, pretože dôležité overovacie emaily tam často skončia.
Vytvorenie hlásenia o chybe
Pred nahlásením chyby sa prosím uisitite, že už nebola nahlásená. Tiež na to môžete použiť funkciu hľadanie.
Potom, ako ste sa uistili, že chyba je jedinečná, uveďte čo najpresnejšie vaše informácie:
Pokúste sa reprodukovať problém v aktuálnej revízii Haiku. Sú pripravené obrazy na testovacie účely.
iveďte základné infomrácie o tom ako testujete Haiku (na skutočnom hardvéri, vo VMWare, v QEMU atď.).
Uveďte, ktorú revíziu používate. Túto informáciu nájdete v dialógu
z menu Panela. Tiež uvete, aký druh Haiku testujete (gcc2, gcc4, gcc2hybrid, gcc4hybrid). Obrazy na stiahnutie sú podľa toho pomenované; pri obraze, ktorý ste zostavili sami by ste mali vedieť ako ste ho zostavili.Popíšte váš problém. Skúste byč čo najpresnejší: popíšte správanie, ktoré ste očakávali a správanie, ktoré ste dostali.
Popíšte kroky, ktoré je potrebné vykonať na vyvolanie chyby. To pomôže vývojárom chybu reprodukovať.
Priložte všetky informácie,ktoré máte k dispozícii. Ak je to chyba používateľského rozhrania alebo chyba v niektorej z aplikácií, skúste urobiť snímku obrazovky stlačením klávesu Print Screen.
Chyby aplikácií
Keď aplikácia havaruje, mali by ste vyvolať ladiaci nástroj z upozornenia, ktoré vyskočí. To otvorí okno Terminálu, v ktorom beží gdb (GNU debugger). Zadaním bt vytvoríte „backtrace“, ktorý by ste mali kompletne skopírovať (vrátane časti zorbazenej než ste zadali príkaz bt) a priložiť ho k hláseniu.
Chyby serverov
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 a gdb session will be started, its output appearing directly on screen. Likely you will still be able to move the mouse, which will overwrite the white and gdb 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 and then press the power button once to try shutting cleanly down.
Chyby jadra
Chyby jadra sú zvyčajne tie, ktoré majú najzávažnejší vplyv a zároveň sa najťažšie ladia. Existujú rôzne druhy symptómov, ktoré pravdepodobne naznačujú problém s jadrom alebo ovládačom:
Systém svojvoľne vstúpi KDL (kernel debugging land). Horná časť obrazovky sa vyčistí do biela a vypíše sa na ňu niekoľko riadkov textu. Druhý riadok bude obsahovať „Welcome to Kernel Debugging Land...“ a ten nad ním bude obsahovať okamžitý dôvod, prečo bolo vyvolané KDL.
Systém sa spontánne reštartuje.
Systém kompletne zamrzne. Nemôžete hýbať myšou a žiadna aplikácia nič nevykresľuje. Dôležitý test v tejto situácii je, či ešte môžete vyvolať KDL klávesovou skratkou ALT SysReq D (SysReq je na väčšine klávesníc PRINT). Počkajte aspoň minútu, aby ste uvideli, či sa niečo stane.
Systém nenaštartuje korektne. Môže spontánne naštartovať alebo v niektorom bode zastaviť (napr. na niektorej ikone štartovacej obrazovky). V druhom prípade tiež skúste ALT SysReq D.
Celý systém alebo niektorá časť hardvéru sa nespráva korektne. Napríklad môže byť veľmi pomalý, vyskytnú sa chyby alebo niečo vôbec nefunguje. Ak nejaký hardvér vôbec nefunguje, prvá vec, ktorú treba skontrolovať je, či ho momentálne Haiku vôbec podporuje (napr. spýtať sa v poštovej konferencii alebo na fóre).
Pamätajte, že hoci iba posledný bod indikuje súvislosť s hardvérom, všetky ostatné symptómy môžu byť spôsobené aj chybou v ovládači hardvéru. Ak máte podozrenie, ktorá časť hardvéru alebo zodpovedajúci ovládač môže súvisieť s problémom, skontrolujte, či odstránenie alebo vypnutie hardvéru či ovládača pomôže. Napríklad ak podozrievate Wi-Fi, možno zistíte, že váš BIOS umožňuje ju vypnúť. Alebo ak nie, môžete odstrániť príslušný ovládač Wi-Fi z vašej inštalácie Haiku (pozri Zavádzač systému).
Kernel Debugging Land - KDL
Ak systém sám nevstúpil do KDL, môžete ho úmyselne vyvolať klávesovou skratkou ALT SysReq D.
Pamätajte, že v KDL vaša klávesnica nemusí fungovať. Klávesnice PS/2 fungujú vždy, klávesnice USB pripojené prostredníctvom ovládačov UHCI fungujú iba ak už aspoň raz ste vstúpili do KDL použitím klávesovej skratky. USB OHCI momentálne nie je podporované.
Samotné KDL je istým druhom shellu. Môžete vykonávať príkazy, ktoré vypisujú informácie o systéme. Nasledovné príkazy môžu byť zaujímavé:
bt (resp. sc) | Vypíše backtrace. Ak systém svojvoľne vstúpil do KDL, vždy ho spustite. | |
ints | Zobrazí ošetrené a neošetrené hardvérové prerušenia. | |
co (resp. continue) | Opustí ladenie jadra a pokračuje v normálnej prevádzke systému ak je to možné. | |
reboot | Okamžite reštartuje systém. Stratíte všetky neuložené dáta a aj tie, ktoré už boli uložené, ale zatiaľ neboli zapísané na disk. |
Ďalšie informácie nájdete v článku Welcome to Kernel Debugging Land.
Výstup KDL sa zapisuje na sériový port (ak ho máte a ak máte príslušný kábel na pripojenie druhého počítača, môžete prostredníctvom neho zachytiť výstup pomocou terminálového programu) a do syslogu. Ak nemôžete opustiť KDL, nezapíše však sa do súboru syslog. Existuje voľba zavádzača systému, ktorá vám umožňuje zachytiť ho napriek tomu (pozri nižšie).
Môžete vygenerovať QR kódy z výstupu KDL, ktoré je možné previesť na text pomocou smartfónu alebo podobných zariadení. V príspevku na blogu QR Encode your KDL Output nájdete informácie o tom, ako získať dáta z KDL pomocou tejto funkcie.
Syslog
Toto je preferovaný spôsob ako získať informácie zo systému, ktorý nejde naštartovať.
Syslog (skratka system log) obsahuje cenné informácie o tom, čo sa na vašom systéme stalo vrátane výstupu ladenia KDL. Zvyčajne je dobrý nápad pripojiť ho k súvisiacemu hláseniu v systéme Trac. Syslog sa zapisuje do súboru /boot/system/var/log/syslog. Pretože zapisovanie do súbory vyžaduje, aby bol systém funkčný, je možné, že posledný výstup po výskyte problému s jadrom sa do syslogu už nedostal (obzvlášť pri samovoľných reštartoch alebo reláciách KDL, v ktorých nemožno pokračovať).
Voľba /boot/system/var/log/previous_syslog.
Ak sa vám nedarí spustiť systém, aby ste sa dostali k poslednému syslogu (previous_syslog), musíte vstúpiť do menu zavádzača podržaním klávesu SHIFT počas štartu systému.
V zavádzača by ste mali nájsť položky a . Prvá z nich zobrazí syslog na obrazovke, druhá z nich vám umožní uložiť ho ako súbor na disk. Pamätajte, že momentálne sú na ukladanie súboru podporované iba zväzky so súborovým systémom FAT32. Ak chcete použiť disk USB, ale zapojili ste ho príliš neskoro a nebol zatiaľ rozpoznaný, môžete reštartovať počítač a znovu vstúpiť do menu zavádzača. Pozn.: Vyhnite sa automatickému spusteniu akéhokoľvek operačného systému, inak sa dáta posledného syslogu môžu stratiť.
Výstup ladenia na obrazovku
The on-screen debug output is useful only for debugging very specific issues and is known to have (timing) issues. Don't use it, if you don't have to.
This is only relevant when Haiku fails to boot on your machine and the doesn't work for some reason. Before the Haiku boot logo appears, hold SHIFT to enter the boot loader menu. Select . Near the bottom, will be listed. (Note: The other options could be enabled in an attempt to boot Haiku. If Haiku will boot only when one or more options are activated, be sure to mention which ones.)
Finally select and then .
One or more pages of text will display on the screen, only the last few lines need to be included on your ticket. There's more information on the Boot Loader.
Chyby hardvéru/ovládačov
Ak sa potýkate s chybou súvisiacou s hardvérom alebo ovládačom, mali by ste k hláseniu priložiť nasledovné informácie vo forme textových súborov:
- listdev | Podrobný výpis vášho hardvéru vrátane dodávateľa a PCI ID, podobný ako lshw a lspci v Linuxe. | |
- listusb -v | Za predpokladu, že sa problém týka USB, je podobný ako lsusb. | |
- open /var/log/syslog | Primárny protokol systému, ktorý Haiku používa, podobný ladeniu na obrazovku počas štartu systému. Príkazom open môžete vystrihnúť relevantnú časť syslogu v textovom editore. | |
- listimage | grep drivers/ | Vypíše všetky použité ovládače. | |
- ints | Dostupné iba v rámci (KDL) Kernel Debugging Land (pozri vyššie). Zobrazuje použitie prerušení. Nemalo by sa vyskytovať mnoho takých, ktoré používajú viaceré zariadenia. | |
- Ladiaci výstup na obrazovke (voľba Bezpečný režim počas štartu systému). |
Prvé štyri príkazy sú zadané do Terminálu. Keď za príkaz pridáte > output.txt, výstup sa zapíše do textového súboru s názvom „output.txt“, ktorý môžete priložiť k vášmu hláseniu chyby alebo emailu.
Čo ďalej?
After the bug has been reported, a developer will look at your bug and try to classify it. Remember, we are all volunteers, and as such, sometimes a bug report might go unanswered for a while. Adding new information when it becomes available usually helps getting a bug picked up quicker, but do not try to 'bump' the bug up by adding non-descriptive comments.
Remember, reporting a bug is not something you spend a little time on and then you are done. If you reported a bug, then you are part of the Haiku development process. Developers might come up with questions while they are trying to fix your bug. Please stay around to answer these. Consider your participation 'done' when the bug is marked as 'fixed'.