Reportando erros
Uma vez que nossos desenvolvedores não são capazes de testar todas as combinações de hardware nem todas as diferentes formas de interação com o sistema operacional, nós contamos com os usuários para dar-nos algum retorno sobre como as coisas funcionam em seu equipamento. Uma vez que o Haiku é ainda um tanto jovem, é muito provável que irá encontrar erros. Agradecemos por dispor de tempo para reportá-los. Juntos melhoraremos o Haiku, bit a bit.
Para manter nosso rastreador de erros eficaz, é essencial obedecer à Etiqueta do Rastreador de Erros.
Obtendo uma conta do Trac
Para arquivar um tíquete, é necessária uma conta no Rastreador de Erros do Haiku.
Ao criar uma nova conta, certifique-se de informar seu endereço de correio eletrônico, necessário para obter privilégios básicos para modificação do tíquete. Assegure-se de verificar sua pasta de correspondência indesejada logo depois, afinal toda verificação de correios importantes costuma acabar aí.
Criando um relatório de erro
Antes de reportar um erro, por favor certifique-se de que ele ainda não existe. Pode-se também utilizar a função de pesquisa para isso.
Após constatar que é um erro original, torne sua informação a mais acurada possível:
Attempt to reproduce your issue on the current revision of Haiku. Pre-built images for testing purposes are available.
Inclua informação básica sobre como está testando o Haiku (em equipamento real, no VMWare, no QEMU, etc.).
Mencione qual revisão do SVN você está rodando. Esta informação pode ser encontrada em
a partir do menu do Deskbar. Também mencione que tipo de compilação do Haiku está testando (gcc2, gcc4, gcc2hybrid, gcc4hybrid). As imagens baixáveis são nomeadas de acordo, para uma imagem compilada por você mesmo, deverá informar como o fez.Descreva o problema que está experimentando. Tente ser o mais acurado possível: descreva o comportamento atual e o comportamento que deseja.
Descreva que passos precisa realizar a fim de expor o erro. Isto ajudará os desenvolvedores a reproduzir o erro.
Anexe toda a informação que tiver. Se é um erro de interface gráfica, ou um erro em um dos aplicativos, tente obter uma imagem da tela pressionando a tecla PRINT.
Erros de Aplicativo
Quando um aplicativo trava, deve-se executar o depurador a partir do alerta que aparece na tela. Isto abrirá uma janela do Terminal com o gdb (o depurador GNU) rodando nele. Executando bt, cria-se um "rastro" que deverá ser copiado inteiramente (incluindo a parte antes de executar o comando bt) e anexado ao tíquete.
Erros de servidor
Quando servidores vitais como o servidor de aplicativo, o registrador ou o servidor de entrada travar, não se verá o alerta de travamento usual. Ao invés disso, toda a tela ficará em branco e uma sessão do gdb será iniciada, sua saída aparecendo diretamente na tela. Provavelmente você ainda será capaz de mover o mouse, o que irá sobrescrever o branco e a saída do gdb na tela. Aplicativos ainda em execução (como o Controlador de Processos ou o relógio na Deskbar) podem também aparecer sobre a saída do depurador na tela.
Apesar de tudo ser mais feio e inconveniente, basicamente se aplica o mesmo que aos erros de aplicativos. O mais importante é obter um "rastro" (comando bt). Pode-se precisar obter uma imagem da tela com uma câmera digital, uma vez que, de qualquer maneira, não será capaz de copiar o texto.
Erros do Kernel
Erros de Kernel são sempre os únicos com os efeitos mais graves e ao mesmo tempo os mais difíceis de depurar. Existem diferentes tipos de sintomas, os quais mais provavelmente apontam um problema de kernel ou de driver:
O sistema aciona a Terra da Depuração do Kernel (KDL) por si mesmo. A parte superior da tela torna-se branca e várias linhas de texto são mostradas. A segunda linha diz "Bem vindo a Terra da Depuração do Kernel...", a linha acima dela afirma a razão imediata para entrar na KDL.
O sistema reinicia espontaneamente.
O sistema congela completamente. Não se pode mover o mouse e nenhum aplicativo faz nada mais. Um importante teste naquela situação é, se ainda puder entrar na KDL pelo atalho ALT SysReq D (SysReq sendo PRINT na maioria dos teclados). Aguarde ao menos um minuto para ver se algo acontece.
O sistema não inicializa corretamente. Ele pode reiniciar espontaneamente ou pára em algum ponto (por exemplo, em algum ícone da tela de inicialização). No último caso tente também ALT SysReq D.
O sistema inteiro ou alguma parte do equipamento não se comporta corretamente. Por exemplo, ele pode ficar muito lento, ocorrerem erros ou algo não funcionar absolutamente, a primeira verificação óbvia é se o Haiku já o suporta completamente (por exemplo, perguntando em uma lista de discussão ou num fórum).
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).
Terra da Depuração do Kernel - KDL
Se o sistema não entrar no KDL por si mesmo, pode-se fazê-lo intencionalmente invocando através do atalho de teclado ALT SysReq D.
Observe que no KDL seu teclado pode não funcionar. Teclados PS/2 sempre funcionam, teclados USB conectados via controladores UHCI apenas se alguém entrou no KDL via atalho de teclado ao menos uma vez. USB OHCI não é suportado no momento.
O KDL propriamente é uma espécie de shell. Alguém pode executar comandos que exibem informação sobre o sistema. Os seguintes comandos podem ser de interesse:
bt (conhecido como sc) | Exibe um rastro. Se o sistema entrar no KDL por sua própria vontade, sempre o execute. | |
ints | Mostra as interrupções de dispositivos tratadas e não tratadas. | |
co (conhecido como continue) | Sai do depurador do kernel e continua a operação normal do sistema, se for possível. | |
reboot | Reinicia o sistema imediatamente. Perder-se-á todos os dados não salvos e até mesmo aqueles que tenham sido salvos, mas que não tenham sido gravados no disco. |
Para mais informações, veja o artigo Bem vindo à Terra da Depuração do Kernel.
A saída do KDL é enviada para uma porta serial (caso tenha um, um cabo respectivo e um segundo computador conectado a ele, pode-se capturar a saída lá através de um programa de terminal) e para o relatório do sistema. Entretanto, se não puder sair do KDL ela não será escrita no arquivo de relatório do sistema. Todavia, existe uma opção de depuração do carregador da inicialização que permite capturá-la (veja abaixo).
Pode-se gerar códigos QR a partir da saída do KDL que pode então ser convertido para texto utilizando smartphones ou dispositivos similares. Veja a postagem de blog QR codifica sua saída do KDL sobre como obter saída de dados do KDL utilizando aquela funcionalidade.
Relatório de sistema
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.
Saída de depuração na tela
A saída em tela é útil apenas para depurar problemas muito específicos e é conhecido por ter problemas (de tempo). Não a utilize, se não precisar.
Isto é relevante apenas quando o Haiku falha ao inicializar na sua máquina e a não funciona por alguma razão. Antes da logo de inicialização do Haiku aparecer, pressione SHIFT para entrar no menu do carregador de inicialização. Selecione . Próximo do fim, será listada. (Observação: As outras opções podem ser habilitadas numa tentativa de inicializar o Haiku. Se o Haiku inicializar apenas quando uma ou mais opções forem ativadas, assegure-se de mencionar quais são.)
Finalmente selecione e então .
Uma ou mais páginas de texto serão exibidas na tela, apenas as últimas poucas linhas precisam ser incluídas no seu tíquete. Há mais informações em Carregador de Inicialização.
Erros de Dispositivo/Driver
Enquanto estiver lidando com um erro relativo a dispositivo/driver, deve-se anexar as seguintes informações como arquivos de texto:
- listdev | Uma lista detalhada do seu dispositivo, incluindo fornecedor e id's pci, similar ao lshw e lspci do Linux. | |
- listusb -v | Supondo que seja um problema relacionado a USB, é similar ao lsusb. | |
- open /var/log/syslog | O relatório primário de sistema utilizado pelo Haiku, parecido com a depuração na tela durante a inicialização. Com o comando open pode-se cortar a parte relevante do relatório de sistema em um editor de texto. | |
- listimage | grep drivers/ | Lista todos os drivers utilizados. | |
- ints | Apenas disponível na Terra da Deupração do Kernel (ver acima). Exibe a utilização das interrupções. There shouldn't be too many that are shared by different devices. | |
- Saída de depuração na tela (Uma opção de modo de segurança em tempo de inicialização). |
Os primeiros quatro comandos são executados no Terminal. Adicione um > output.txt após um comando e ele será direcionado para um arquivo de texto chamado "output.txt" que pode ser anexado a seu relatório de erro ou mensagem de correio eletrônico.
O que vem a seguir?
Após o erro ter sido reportado, um desenvolvedor irá dar uma olhada e tentar classificá-lo. Lembre-se, nós somos voluntários e, como tais, algumas vezes um relatório de erro pode ficar sem resposta por um tempo. Adicionar informação nova quando disponível geralmente ajuda a selecionar o problema mais rapidamente, mas não tente 'incrementar' o erro adicionando comentários não descritivos.
Lembre-se, reportar um erro não é algo a que se dispensa um pouco de tempo e então está resolvido. Se reportou um erro, então você é parte do processo de desenvolvimento do Haiku. Desenvolvedores podem aparecer com perguntas enquanto eles estão tentando consertar o erro. Por favor esteja disponível para respondê-los. Considere sua participação 'terminada' quando o erro estiver marcado como 'corrigido'.