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:
Attempt to reproduce your issue on the current revision of Haiku. Pre-built images for testing purposes are available.
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 zo SVN používate. Túto informáciu nájdete v dialógu
z menu Panela. Tiež uvete, aký druh Haiku testujete (gcc2, gcc4, gcc2hybrid, gcc4hybrid). Obsazy 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
Ak havarujú dôležité servery ako aplikačný server, registrátor alebo server vstupu, neuvidíte zvyčajné upozornenie na haváriu. Namiesto toho sa celá obrazovka zmaže na bielu farbu, spustí sa relácia gdb a jej výstup sa objaví priamo na obrazovke. Pravdepodobne budete môcť pohybovať myšou, čo prepíše bielu farbu a výstup gdb na obrazovke. Aplikácie, ktoré ešte bežia (ako ProcessController alebo hodiny v Paneli) tiež možno prekreslia časť ladiaceho výstupu na obrazovke.
Okrem toho, že je všetko škaredšie a nepohodlné platí prakticky to isté ako pri chybách aplikácií. Predovšetkým získajte backtrace (príkaz bt). Možno budete musieť odfotiť obrazovku digitálnym fotoaparátom, pretože nebudete môcť text nikam skopírovať.
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).
Note that while only the last point seems to indicate hardware relation, all the other symptoms could be caused by a bug in a hardware driver as well. If you have a suspicion what piece of hardware or corresponding driver might have to do with the problem, check whether removing/disabling the hardware or the driver makes a difference. For example, if you suspect Wifi you may find that your BIOS has an option to disable it. Or if not, you could blacklist the responsible Wifi driver from your Haiku installation (see Boot Loader).
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).
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.
Syslog
This is the preferred method for gaining 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 /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 you should find the entries and . 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.
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
When dealing with a hardware/driver related bug, you should attach the following information as text files:
- listdev | A detailed listing of your hardware, including vendor and pci id's, similar to Linux' lshw and lspci. | |
- listusb -v | Assuming its a USB related issue, similar to lsusb. | |
- open /var/log/syslog | The primary system log used by Haiku, 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/ | Lists all used drivers. | |
- ints | Only available within Kernel Debugging Land (see above). Shows interrupt usage. There shouldn't be too many that are shared by different devices. | |
- On screen debug output (a safe mode boot time option). |
The first four commands are entered into Terminal. Add a > output.txt after a command, and it's piped into a text file called "output.txt" that you can attach to your bug report or email.
Č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'.