Depuradores (Debbugers) Um depurador é um programa de computador usado para testar outros programas e fazer sua depuração, que consiste em encontrar os defeitos do programa. Erros de software incluem aqueles que previnem o programa de ser executado e aqueles que produzem um resultado inesperado. A necessidade de entender a depuração auxilia na compreensão da seqüência do algoritmo e na investigação dos valores obtidos (nem sempre corretos). De fato, a depuração é necessário somente quando há erro ou dúvida nos tópicos mencionados. Logo que normalizada a situação, é desnecessário depurar. Assim, é prático estabelecer que pontos se deseja observar durante o processamento do algoritmo. Quando o programa aborta, o depurador mostra a posição no código fonte original, se for um depurador de código fonte, ou um depurador simbólico. Caso seja um depurador de linguagem de máquina, ele mostra a linha onde ocorreu o problema através de desmontagem. Um programa é abortado quando ele usa uma instrução não disponível (inválida) na CPU, quando tenta acessar memória inexistente ou não disponível para ele, bloqueada pelo mecanismo de proteção. Ou seja: quando tenta acessar, devido a defeito ou não, recursos indisponíveis para ele. Depuradores são ferramentas que permitem ao programador monitorar a execução de um programa, pará-lo e reiniciá-lo, ativar pontos de parada, alterar áreas de memória e, em alguns casos, voltar no tempo. De forma geral, linguagens de alto nível tornam a depuração mais fácil, pois fornecem mais ferramentas para identificar erros, como o tratamento de exceções. Em linguagens de baixo nível, erros de código podem causar problemas difíceis de serem identificados, como corrupção de memória. Nesse caso, depuradores de memória podem ser necessários. Para certos tipos de problema existem ferramentas de análise do código fonte, que buscam por erros específicos no código, o que depende da linguagem de programação em uso. Enquanto um compilador se preocupa com a sintaxe do código fonte, tais ferramentas de análise focam a semântica. Um problema geralmente identificável através do código fonte é o uso duma variável antes da primeira atribuição. Para a depuração de hardware, assim como software de baixo nível (como BIOS, firmware e drivers de dispositivo) instrumentos como osciloscópios, analisadores lógicos eemuladores são frequentemente usados. O OllyDbg é um debugador com o qual podemos acompanhar passo a passo a execução de programas. Além possuir um desassemblador poderoso que nos mostra todas as linhas de comando, podemos observar o conteúdo dos registradores e de posições da memória. Quem tiver interesse em se aprofundar no assunto, pode pesquisar no Google sobre “Engenharia Reversa” e outros tutoriais com o OllyDbg. Existem outros software que fazem a mesma coisa, mas cometei sobre o OllyDbg por ser grátis para usar e bem conhecido. Fontes: – http://pt.wikipedia.org/wiki/Depurador – http://pt.wikipedia.org/wiki/Depuração – http://muitomaisfacil.blogspot.com.br/2008/04/olly-debuggero-melhor.html – http://www2.joinville.udesc.br/~dcc2efcm/prd-mec/depurarFort ran/depurar.htm