Quando se projeta uma aplicação qualquer, invariavelmente é necessário pensar em como corrigir erros que, inevitavelmente, aparecerão. Isso, claro, se o aplicativo for minimamente complexo; não é possível (ou pelo menos não é provável) que haja erros em uma aplicação de soma de dois números, por exemplo. Outro ponto importante a ser levado em conta é que, quanto mais complexo o desenvolvimento, mais complicado é de encontrar esses erros. Ou seja, quando o desenvolvedor enxerga que o resultado final não é o esperado, fica muito mais difícil de encontrar onde o erro se encontra. Erro esse que muitas vezes é minúsculo, porém capaz de alterar todo o funcionamento do aplicativo. Para encontrar e corrigir esses erros existe um conceito chamado de depuração de código.
Depuração
A depuração de código, ou debug, foi utilizada pela primeira vez (com esse nome) em 1979, no livro de Glenford Myers, Software Reliability: Principles and Practices. O termo deriva da palavra bug, que é um termo para definir erros genéricos em computação. Com isso, o ato de depurar, ou debugar (em um aportuguesamento bem ruim), o código é responsável por localizar e corrigir erros genéricos.
Por mais simples que seja o conceito, o ato de depurar um código não é tão simples assim. Em geral, isso depende muito da linguagem de programação e também da ferramenta responsável por essa depuração, o depurador. Depuradores são, basicamente, responsáveis por permitir ao programador monitorar a execução de um programa, além de outras tarefas pertinentes. No caso de linguagens de alto nível, a depuração é menos trabalhosa, porque a própria linguagem é capaz de tratar exceções. Ou seja, como em tudo que envolve aplicações computacionais, a depuração de código também é muito mais simples em código bem escrito.
É interessante notar que a depuração não é um processo exclusivamente de software, também é vista em hardware. Basicamente, o processo de encontrar erros em hardware é um tanto mais complexo, uma vez que envolve o uso de instrumentos como osciloscópios e multímetros. As variáveis monitoradas são, portanto, a tensão e a corrente que circulam por determinada parte do circuito em um determinado momento. Porém, isso acaba não sendo muito prático. Para evitar a construção de hardware com erros, foram criadas as linguagens de descrição de hardware, entre as quais as mais utilizadas são VHDL (VHSIC Hardware Description Language), VeriLog e SystemC. Essas linguagens permitem a descrição do hardware e seu comportamento, e com isso, cria-se a possibilidade de emulação do hardware. É possível observar as formas de onda de entrada e saída do circuito, para verificar se o mesmo está com o comportamento esperado. Esse tipo de atitude evita muitos erros na construção de placas de circuito impresso.
O processo de depuração não é muito trivial. No caso de computação paralela, por exemplo, é muito complicado de encontrar erros, e, como tal, as dicas para programadores em ambientes assim é que realizem a depuração de código localmente, para depois paralelizá-lo. Em qualquer depuração, o lema de dividir para conquistar é o padrão. Essa divisão é feita como uma forma de simplificar o problema. Um exemplo clássico é um programa que lê diversos registros e o problema está associado a apenas um deles. Com isso, lendo apenas uma dessas entradas, é possível ver se o erro é realmente esse ou é alguma outra coisa, realmente no código. Após o isolamento do problema, ele precisa ser identificado, e é aí que entram os depuradores.
O depurador nada mais é do que uma aplicação utilizada para testar outras aplicações. Em outras palavras, é um programa utilizado para encontrar erros em outros. Um dos pontos mais comuns a todos os depuradores é a capacidade de criar breakpoints, ou seja, pontos de parada. Com esses pontos, o código para sua execução temporariamente, permitindo que o programador observe o estado da aplicação naquele momento, como variáveis, saída de métodos, etc. A maioria dos depuradores também oferece funcionalidades mais elaboradas, como a execução de código passo a passo, que é muito útil na maioria dos casos em que não se tem a me ...
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais
Confira outros conteúdos:
Apresentando o Projeto da Copa do Mundo
Agentes de IA e o OpenAI Codex na...
Como se preparar para uma carreira dev...
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.