Dicas de depuração para desenvolvedores do Kernel Linux¶
Guias gerais¶
Todolist:
driver_development_debugging_guide
gdb-kernel-debugging
kgdb
userspace_debugging_guide
Guias específicos de subsistemas¶
Todolist:
media_specific_debugging_guide
Dicas gerais de depuração¶
Dependendo do problema, um conjunto diferente de ferramentas está disponível para rastrear o problema ou até mesmo para perceber se há algum problema em primeiro lugar.
Como primeiro passo, você precisa descobrir que tipo de problema você deseja depurar. Dependendo da resposta, sua metodologia e escolha de ferramentas podem variar.
Preciso depurar com acesso limitado?¶
Você possui acesso limitado à máquina ou não consegue parar a execução em andamento?
Nesse caso, sua capacidade de depuração depende do suporte de depuração embutido no kernel fornecido pela distribuição. O Userspace debugging advice fornece uma breve visão geral sobre uma variedade de ferramentas de depuração possíveis nessa situação. Você pode verificar a capacidade do seu kernel, na maioria dos casos, olhando o arquivo de configuração dentro do diretório /boot.
Eu tenho acesso root ao sistema?¶
Você consegue facilmente substituir o módulo em questão ou instalar um novo kernel?
Nesse caso, sua gama de ferramentas disponíveis é muito maior. Você pode encontrar as ferramentas no Debugging advice for driver development.
A temporização é um fator?¶
É importante entender se o problema que você deseja depurar se manifesta de forma consistente (ou seja, para um determinado conjunto de entradas, você sempre obtém a mesma saída incorreta) ou de forma inconsistente. Se ele se manifestar de forma inconsistente, algum fator de temporização pode estar em jogo. Se a inserção de atrasos no código alterar o comportamento, é bastante provável que a temporização seja um fator determinante.
Quando a temporização altera o resultado da execução do código, o uso de um
simples printk() para fins de depuração pode não funcionar; uma alternativa
semelhante é usar trace_printk(), que registra as mensagens de depuração no
arquivo de rastreamento, em vez de no log do kernel.
Copyright ©2024 : Collabora