1*7acf3769SLucas Adryell Ramalho.. SPDX-License-Identifier: GPL-2.0 2*7acf3769SLucas Adryell Ramalho 3*7acf3769SLucas Adryell Ramalho======================================================= 4*7acf3769SLucas Adryell RamalhoDicas de depuração para desenvolvedores do Kernel Linux 5*7acf3769SLucas Adryell Ramalho======================================================= 6*7acf3769SLucas Adryell Ramalho 7*7acf3769SLucas Adryell RamalhoGuias gerais 8*7acf3769SLucas Adryell Ramalho------------ 9*7acf3769SLucas Adryell Ramalho 10*7acf3769SLucas Adryell RamalhoTodolist: 11*7acf3769SLucas Adryell Ramalho 12*7acf3769SLucas Adryell Ramalho* driver_development_debugging_guide 13*7acf3769SLucas Adryell Ramalho* gdb-kernel-debugging 14*7acf3769SLucas Adryell Ramalho* kgdb 15*7acf3769SLucas Adryell Ramalho* userspace_debugging_guide 16*7acf3769SLucas Adryell Ramalho 17*7acf3769SLucas Adryell RamalhoGuias específicos de subsistemas 18*7acf3769SLucas Adryell Ramalho-------------------------------- 19*7acf3769SLucas Adryell Ramalho 20*7acf3769SLucas Adryell RamalhoTodolist: 21*7acf3769SLucas Adryell Ramalho 22*7acf3769SLucas Adryell Ramalho* media_specific_debugging_guide 23*7acf3769SLucas Adryell Ramalho 24*7acf3769SLucas Adryell RamalhoDicas gerais de depuração 25*7acf3769SLucas Adryell Ramalho------------------------- 26*7acf3769SLucas Adryell Ramalho 27*7acf3769SLucas Adryell RamalhoDependendo do problema, um conjunto diferente de ferramentas está disponível 28*7acf3769SLucas Adryell Ramalhopara rastrear o problema ou até mesmo para perceber se há algum problema em 29*7acf3769SLucas Adryell Ramalhoprimeiro lugar. 30*7acf3769SLucas Adryell Ramalho 31*7acf3769SLucas Adryell RamalhoComo primeiro passo, você precisa descobrir que tipo de problema você deseja 32*7acf3769SLucas Adryell Ramalhodepurar. Dependendo da resposta, sua metodologia e escolha de ferramentas podem 33*7acf3769SLucas Adryell Ramalhovariar. 34*7acf3769SLucas Adryell Ramalho 35*7acf3769SLucas Adryell RamalhoPreciso depurar com acesso limitado? 36*7acf3769SLucas Adryell Ramalho------------------------------------ 37*7acf3769SLucas Adryell Ramalho 38*7acf3769SLucas Adryell RamalhoVocê possui acesso limitado à máquina ou não consegue parar a execução em 39*7acf3769SLucas Adryell Ramalhoandamento? 40*7acf3769SLucas Adryell Ramalho 41*7acf3769SLucas Adryell RamalhoNesse caso, sua capacidade de depuração depende do suporte de depuração 42*7acf3769SLucas Adryell Ramalhoembutido no kernel fornecido pela distribuição. 43*7acf3769SLucas Adryell RamalhoO :doc:`/process/debugging/userspace_debugging_guide` fornece uma breve visão 44*7acf3769SLucas Adryell Ramalhogeral sobre uma variedade de ferramentas de depuração possíveis nessa situação. 45*7acf3769SLucas Adryell RamalhoVocê pode verificar a capacidade do seu kernel, na maioria dos casos, olhando o 46*7acf3769SLucas Adryell Ramalhoarquivo de configuração dentro do diretório /boot. 47*7acf3769SLucas Adryell Ramalho 48*7acf3769SLucas Adryell RamalhoEu tenho acesso root ao sistema? 49*7acf3769SLucas Adryell Ramalho-------------------------------- 50*7acf3769SLucas Adryell Ramalho 51*7acf3769SLucas Adryell RamalhoVocê consegue facilmente substituir o módulo em questão ou instalar um novo 52*7acf3769SLucas Adryell Ramalhokernel? 53*7acf3769SLucas Adryell Ramalho 54*7acf3769SLucas Adryell RamalhoNesse caso, sua gama de ferramentas disponíveis é muito maior. Você 55*7acf3769SLucas Adryell Ramalhopode encontrar as ferramentas 56*7acf3769SLucas Adryell Ramalhono :doc:`/process/debugging/driver_development_debugging_guide`. 57*7acf3769SLucas Adryell Ramalho 58*7acf3769SLucas Adryell RamalhoA temporização é um fator? 59*7acf3769SLucas Adryell Ramalho-------------------------- 60*7acf3769SLucas Adryell Ramalho 61*7acf3769SLucas Adryell RamalhoÉ importante entender se o problema que você deseja depurar se manifesta 62*7acf3769SLucas Adryell Ramalhode forma consistente (ou seja, para um determinado conjunto de entradas, você 63*7acf3769SLucas Adryell Ramalhosempre obtém a mesma saída incorreta) ou de forma inconsistente. Se ele se 64*7acf3769SLucas Adryell Ramalhomanifestar de forma inconsistente, algum fator de temporização pode estar em 65*7acf3769SLucas Adryell Ramalhojogo. Se a inserção de atrasos no código alterar o comportamento, é bastante 66*7acf3769SLucas Adryell Ramalhoprovável que a temporização seja um fator determinante. 67*7acf3769SLucas Adryell Ramalho 68*7acf3769SLucas Adryell RamalhoQuando a temporização altera o resultado da execução do código, o uso de um 69*7acf3769SLucas Adryell Ramalhosimples printk() para fins de depuração pode não funcionar; uma alternativa 70*7acf3769SLucas Adryell Ramalhosemelhante é usar trace_printk(), que registra as mensagens de depuração no 71*7acf3769SLucas Adryell Ramalhoarquivo de rastreamento, em vez de no log do kernel. 72*7acf3769SLucas Adryell Ramalho 73*7acf3769SLucas Adryell Ramalho**Copyright** ©2024 : Collabora 74