<p>Comme il est impossible pour nos développeurs de tester toutes les combinaisons de matériel, ni tous les cas de figure pouvant interagir avec le système d'exploitation, nous comptons sur les utilisateurs pour nous dire si les choses fonctionnent pour eux. puisque Haiku est encore tout jeune, il est très probable que vous rencontriez des bogues. Nous vous remercions de bien vouloir prendre le temps de nous les signaler. Ensemble, nous pourrons, petit à petit, améliorer Haiku.</p>
<p>Afin que le suivi de nos bogues reste efficace, il est essentiel de respecter l’<ahref="https://dev.haiku-os.org/wiki/BugTrackerEtiquette">étiquette de suivi des bogues</a>.</p>
<p>Pour remplir un rapport (ticket), vous aurez besoin d’un compte utilisateur sur le <ahref="http://dev.haiku-os.org/register"title="Traqueur de bogues de Haiku">Traqueur de bogues de Haiku</a>.<br/>
Lors de la création d’un nouveau compte, pensez à <b>indiquer votre adresse e-mail</b> afin d’obtenir les privilèges basiques de gestions des tickets. N’oubliez pas de <b>Vérifier votre dossier de pourriel</b> après, car les e-mails de vérifications s’y retrouvent souvent.</p>
<p>Avant de rapporter un bogue, veuillez <ahref="http://dev.haiku-os.org/query?status=new&status=assigned&status=reopened&status=closed&summary=%7Etext+you+want+to+search+for&order=priority">vérifier</a> qu’il n’est pas déjà répertorié. Vous pouvez aussi utiliser la <ahref="http://dev.haiku-os.org/search?q=&noquickjump=1&ticket=on">fonction de recherche</a> pour cela.<br/>
Après vous être assuré que votre bogue est unique, obtenez des informations précises sur votre environnement:</p>
<li><p>Essayez de reproduire votre problème avec la version actuelle d'Haiku. Des <ahref="http://haiku-files.org/">images préfabriqués</a> sont disponible à cet usage.</p></li>
<li><p>Indiquez quelle révision vous utilisez. Vous pouvez trouver cette information dans le menu <spanclass="menu">À propos de Haiku...</span> de la Deskbar.
N'oubliez pas de mentionner le type de construction dont est issu le système que vous testez (x86_gcc2, x86_64).
Les images téléchargeables sont nommés en conséquence. Si vous avez construit l'image vous-même, vous devriez savoir comment vous l'avez compilé.</p></li>
<li><p>Décrivez le problème que vous rencontrez. soyez aussi précis que possible : décrivez le comportement réel, et celui que vous attendiez.</p></li>
<li><p>Attachez au rapport le plus d’informations possibles. Si le bogue concerne l’interface graphique ou une application, essayez de faire une capture d’écran à l'aide de la la touche <spanclass="key">Impr Écran</span>.</p></li>
<p>Lorsqu'une application plante, vous pouvez soit enregistrer un rapport, soit écrire un fichier de base (les deux seront sauvegardés sur le Bureau) afin de les joindre à un rapport de bug. Vous pouvez aussi invoquer le <ahref="../../userguide/fr/applications/debugger.html">Debugger</a>.</p>
<p>Lorsque les serveurs vitaux comme le serveur d'application, de registre ou d'entrées plantent, vous ne verrez pas l'alerte de crash habituelle. À la place, l'écran sera nettoyé à blanc et une session gdb sera lancée, qui affichera directement ses restitutions à l'écran. Il se pourrait que vous soyez toujours à même de déplacer la souris, qui dessinera alors par dessus l'écran blanc de gdb. Les applications encore en cours (comme ProcessController ou l'horloge dans la barre de Bureau) pourrait également continuer à se dessiner au dessus de la sortie du débogueur à l'écran.<br/>
Bien que tout soit plus laid et peu commode, les même fondamentaux que pour déboguer les applications s'appliquent. Le plus important est de fournir une trace de la pile d'appel à l'aide de la commande <spanclass="cli">bt</span> (backtrace). Comme vous ne serez pas en mesure de copier le texte, Vous devrez peut-être prendre une photo de l'écran avec un appareil photo numérique<br/>
En fonction de ce qui s'est planté, vous pouvez essayer d'enregistrer un rapport d'accident sur le Bureau avec <spanclass="cli">save-report</span> ou <spanclass="cli">write-core</span> pour un fichier image, puis appuyez une fois sur le bouton marche/arrêt pour essayer d'arrêter proprement le système. Si le bouton d'alimentation ne fonctionne pas, il y a aussi les commandes <spanclass="cli">shutdown</span> et <spanclass="cli">reboot</span>.</p>
<aid="kernel"name="kernel">Bogues du noyau</a></h2>
<p>Les bogues du noyau sont habituellement ceux qui ont les effets les plus graves, tout en étant les plus difficiles à déboguer. Il existe différents types de symptômes, qui révèlent généralement un problème du noyau ou d'un pilote :</p>
<li><p>Le système entre en mode débogage du noyau (KDL) de lui même. La partie supérieure de l'écran est mise à blanc et plusieurs lignes de texte sont affichées.
La seconde ligne dit « <i>Welcome to Kernel Debugging Land…</i> ». Celle au-dessus, précise la raison qui a déclenchée la session de débogage du noyau (KDL).</p></li>
<li><p>Le système se bloque complètement. Vous ne pouvez pas déplacer la souris et plus aucune application ne dessine quoi que se soit. Dans cette situation, un bon test consiste à essayer d'accéder au KDL via le raccourci <spanclass="key">Alt</span><spanclass="key">SysReq</span><spanclass="key">D</span> (<spanclass="key">SysReq</span> étant la touche <spanclass="key">Impr Écran</span> sur la plus part des claviers). Attendez au moins une minute, pour voir si quelque chose se passe.</p></li>
<li><p>Le système ne démarre pas correctement. Il peut redémarrer spontanément ou s'arrêter à un moment donné (par exemple au niveau d'une icône de l'écran de démarrage). Dans ce dernier cas vous pouvez essayer aussi <spanclass="key">Alt</span><spanclass="key">SysReq</span><spanclass="key">D</span>.</p></li>
<li><p>L'ensemble du système ou un élément matériel ne se comporte pas correctement. Par exemple, il pourrait être très lent, des erreurs pourraient se produisent, ou quelque chose pourrait ne pas fonctionner du tous. Si un périphérique ne fonctionne pas du tout, la première vérification évidente à faire, est de se renseigner pour savoir si il est déjà supporté par Haiku (par exemple, en posant la question sur une liste de diffusion ou un forum).</p></li>
<p>Notez que si seul le dernier point semble indiquer une relation avec le matériel, tous les autres symptômes pourraient aussi être causés par un bogue dans un pilote.
Si vous soupçonnez un matériel ou son pilote d'être responsable du problème, vérifiez si la suppression ou la désactivation du matériel ou du pilote change quelque chose.
Par exemple, si vous soupçonnez le Wifi, votre BIOS a peut-être une option pour le désactiver. Sinon, vous pouvez supprimer le pilote Wifi installé dans Haiku (voir <ahref="../../userguide/fr/bootloader.html">Chargeur de démarrage</a>).</p>
<p>Si le système n’entre pas de lui même en mode débogage du noyau (KDL) vous pouvez l’invoquer à l'aide du raccourci clavier <spanclass="key">At</span><spanclass="key">SysReq</span><spanclass="key">D</span> (<spanclass="key">SysReq</span> correspond à <spanclass="key">Impr Écran</span> sur la plupart des claviers) Attention : l'ordre des touches compte<br/>
Notez bien que votre clavier pourrait ne pas fonctionner en mode débogage du noyau. Si les claviers PS/2 ne posent pas de problème, pour les claviers USB cela dépend du type de contrôleur USB (UHCI/EHCI).
En règle générale, le clavier doit être branché directement sur le port, et non par l'intermédiaire d'un concentrateur. Dans certains cas, le clavier ne fonctionne que si l'on a invoqué le mode débogage du noyau une première fois via le raccourci clavier. Pour le moment l'USB OHCI n'est pas supporté.</p>
<p>KDL est, par lui-même, une sorte d'interpréteur de commande. On peut exécuter des instructions pour afficher des informations sur le système. Les commandes suivantes pourraient vous intéresser :</p>
<tr><td><spanclass="cli">bt</span> (alias <spanclass="cli">sc</span>)</td><td></td><td>Affiche une trace de débogage (backtrace), Faites systematiquement cette commande quand le système entre dans le débogueur de lui même.</td></tr>
<tr><td><spanclass="cli">ints</span></td><td></td><td>Affichera les interruptions matérielles qui sont gérées, ainsi que celles qui sont ignorées.</td></tr>
<tr><tdclass="onelinetop"><spanclass="cli">co</span> (alias continue)</td><td></td><td>Quitte le débogueur pour reprendre, si possible, les opérations normales du système.</td></tr>
<tr><td><spanclass="cli">reboot</span></td><td></td><td>Redémarre le système immédiatement. Vous perdrez toutes les données non enregistrées, ainsi que celles qui ont été enregistrés, mais qui n'ont pas encore été écrites sur le disque.</td></tr>
</table>
<p>Pour plus d'information, consultez l'article <ahref="http://www.haiku-os.org/documents/dev/welcome_to_kernel_debugging_land">Welcome to Kernel Debugging Land</a>.</p>
<p>La sortie KDL est écrite vers le port série ( si vous en avez un, un câble approprié, et un deuxième ordinateur pour vous connecter, vous pourrez capturer la sortie via un programme de terminal) et le journal système. Nottez que si vous ne pouvez pas sortir du mode de débogage du noyau, le journal ne sera pas écrit dans le fichier. Cependant, Il existe une option dans le menu de démarrage qui permet tout de même sa capture (voir ci-dessous). </p>
<p>Vous pouvez générer des codes QR à partir des sorties du KDL, ce qui vous permet de récupérer le texte en photographiant l'écran avec un un smartphones ou un appareil similaires. Consultez le blog <ahref="http://www.haiku-os.org/blog/mmlr/2012-07-01_qr_encode_your_kdl_output">QR Encode your KDL Output</a> pour obtenir les informations sur l'utilisation de cette fonctionnalité dans le KDL.</p>
<p><b>C'est la méthode privilégiée pour obtenir des informations d'un système qui ne démarre pas.</b><br/>Le journal système ( « syslog » en abrégé) contient des informations précieuses sur ce qui s'est passé dans votre système, y compris les productions des sessions KDL. L'attacher au ticket «kernel» dans l'outil de suivi de bogues (Trac) est généralement une bonne pratique.
Le journal est consigné dans le fichier <spanclass="path">/boot/system/var/log/syslog</span>. Puisque l'écriture d'un fichier requiert un système qui fonctionne, les entrées les plus récentes faites dans le journal peuvent ne pas être présentes quand un problème se produit dans le noyau (en particulier lors d'un redémarrage spontané ou d'une session KDL non recouvrable).</p>
<p>The option <spanclass="menu">Enable debug syslog</span> in the boot loader's <spanclass="menu">Debug menu</span> makes the syslog persistent. If the option <spanclass="menu">Save syslog from previous session during boot</span> is activated in the boot loader options (as it is by default), you'll find the syslog of your last session as <spanclass="path">/boot/system/var/log/previous_syslog</span>.<br/>
If you're not able to boot to get to the previous_syslog, you have to enter the boot loader menu by holding down <spanclass="key">SHIFT</span> while booting.<br/>
In the boot loader's <spanclass="menu">Debug menu</span> you should find the entries <spanclass="menu">Display syslog from previous session</span> and <spanclass="menu">Save syslog from previous session</span>. 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.</p>
<p><b>La sortie écran du débogueur n'est utile que pour déboguer certains problèmes bien spécifiques, et est connu pour avoir des problèmes (timing). Ne l'utilisez que si vous en avez vraiment besoin.</b><br/>
Ce n'est pertinent que si Haiku n'arrive pas à démarrer sur votre machine et que le <spanclass="menu">Debug syslog option</span> ne fonctionne pas pour quelque raison que ce soit. Pour accéder au menu du chargeur de démarrage, maintenez la touche <spanclass="key">MAJ</span> enfoncée avant que le logo de Haiku n'apparaisse. Choisissez <spanclass="menu">Select safe mode options</span>. Selectionnez <spanclass="menu">[ ] Enable on screen debug output</span> que vous verrez en bas. (Notez que les autres options peuvent êtres activées pour tenter de démarrer Haiku. Si Haiku ne démarre que lorsque certaines options sont activées, n'oubliez pas de mentionner lesquelles )<br/>
Enfin choisissez <spanclass="menu">Return to main menu</span> puis <spanclass="menu">Continue booting</span>.<br/>
Une ou plusieurs pages de texte seront affiché à l'écran, Seules les quelques dernières lignes ont besoin de figurer dans votre rapport de bogue. Vous trouvez plus d'information dans le sujet consacré au <ahref="../../userguide/fr/bootloader.html">Chargeur de démarrage</a>.</p>
<tr><td>- <spanclass="cli">listdev</span></td><td></td><td>Fait une liste détaillée de votre matériel, en y incluant les identifiants des périphériques PCI et de leurs fabriquants, à la manière de <spanclass="cli">lshw</span> ou <spanclass="cli">lspci</span> dans GNU/Linux.</td></tr>
<tr><td>- <spanclass="cli">listusb -v</span></td><td></td><td>Fait comme <spanclass="cli">lsusb</span> en supposant que c'est un problème lié à l'USB.</td></tr>
<tr><td>- <spanclass="cli">open /var/log/syslog</span></td><td></td><td>Le journal système principal utilisé par Haiku (voir <ahref="#syslog">Le journal système</a> ci-dessus)
est similaire à l'écran de débogage pendant le démarrage. Avec la commande <spanclass="cli">open</span>, vous pouvez modifier ce journal dans un éditeur de texte pour n'en conserver que la partie la plus pertinente.</td></tr>
<tr><tdclass="onelinetop">- <spanclass="cli">listimage | grep drivers/</span></td><td></td><td>Liste tous les drivers utilisés.</td></tr>
<tr><td>- <spanclass="cli">ints</span></td><td></td><td>Seulement disponible dans le <i>mode débogage du noyau</i> (voir ci-dessous). Montre l'utilisation des interruptions.
Il ne devrait pas y avoir trop d'interruptions partagées par plusieurs périphériques.</td></tr>
<p>Les 4 premières commandes sont à exécuter dans le Terminal. Si vous ajoutez <spanclass="cli">> sortie.txt</span> après une commande, sa sortie sera redirigée dans un fichier texte nommé «sortie.txt» que vous pourrez attachez à votre rapport de bogue ou e-mail.</p>
<p>Une fois le bogue rapporté, un développeur le consultera et essayera de le cataloguer. Retenez que tous les développeurs sont des volontaires; un long délai avant réponse peut s’écouler après le rapport de bogue. L’ajout de nouvelles informations une fois celles-ci disponibles peut généralement permettre à un bogue d’être analysé plus rapidement. Néanmoins, n’essayez pas de «faire remonter» un bogue en ajoutant des commentaires non pertinents.</p>
<p>N’oubliez pas, le rapport d’un bogue ne se limite pas à sa soumission. Une fois cette tâche faite, vous ferez partie du processus de développement de Haiku. Les développeurs pourront vous poser des question pour essayer de résoudre votre bogue. Merci de rester disponible pour y répondre. Vous pourrez considérer votre travail «terminé» quand le bogue sera marqué comme étant « corrigé ».</p>