thumb|right|250px|Um depurador de Python sendo executado Um depurador () é um programa de computador usado para testar outros programas e fazer sua depuração, que consiste em encontrar os defeitos do programa.
O código a ser examinado pode estar sendo executado sob uma máquina virtual, uma técnica que permite total flexibilidade de acesso aos estados da máquina virtual, que também é software. Mas os processadores modernos têm muitos recursos, que também facilitam o acesso a instruções do programa. Por exemplo, desde há muito tempo é possível interromper a execução de instruções do programa depurado em qualquer ponto e examinar o conteúdo de suas variáveis.
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. Em geral, o sistema operacional é que faz com que o programa aborte.
Em geral, os depuradores também oferecem funcionalidades mais sofisticadas, como: a execução passo-a-passo de um programa; a suspensão do programa para examinar seu estado atual, em pontos predefinidos, chamados pontos de parada; o acompanhamento do valor de variáveis que podem ser usadas inclusive para gerar uma suspensão, ou ativar um ponto de parada.
Apesar da importância do uso de depuradores, é bom lembrar que um programa pode se comportar de forma diferente quando executando sob um depurador. O bom humor leva este problema a ser chamado de Heisenbug na literatura especializada, em alusão à incerteza de Heisenberg. Por exemplo, um depurador alterará a velocidade de processamento do programa, o que tanto fará surgir novos problemas de sincronização, quanto poderá mascarar aqueles já existentes. Por esta razão, mesmo os melhores depuradores existentes podem não ser eficazes na solução dos problemas de sincronização muitas vezes presentes em sistemas multitarefa ou distribuídos.
É interessante notar que as mesmas funcionalidades que tornam um depurador útil para o desenvolvedor que precisa eliminar defeitos, podem ser usadas por quem queira quebrar proteção contra cópia, ou fazer um crack de software com alguma limitação de uso.
Muitos programadores—em particular aqueles habituados ao desenvolvimento em ambientes de desenvolvimento integrado, não gostam ou têm dificuldade de trabalhar com depuradores com recursos limitados de interação, como é o caso de depuradores que oferecem apenas uma interface de linha de comando. Em vez disso, preferem usar front-ends que acrescentem funções de visualização e interação mais sofisticadas e flexíveis, principalmente através de interface gráfica com o usuário.
Depuradores e ferramentas de depuração adb Allinea Distributed Debugging Tool (DDT) AntiC BDebug, parte de Barfly Assembler Development System Broadway CA/EZTEST (Depurador/Testador interativo para CICS) CodeView DAEDALUS DBG, depurador e perfilador para PHP dbx ddb DDD DEBUG DebugDiag Dynamic debugging technique (DDT), e sua contraparte em octal, ODT FusionDebug, um depurador interativo para Coldfusion MX e2dbg o ELF embarcado Eclipse Etnus TotalView GoBug, depurador simbólico para Windows thumb|right|250px|Captura de tela do GNU Debugger GNU Debugger (GDB) HP Distributed Debugging Environment (DDE)HP/DDE Debugger User's Guide: HP 9000 Series 700/800 Computers HP Wildebeest Debugger (WDB) Interactive Disassembler (IDA Pro) Java Platform Debugger Architecture JSwat, depurador Java de código livre ladebug MacsBug MULTIThe MULTI® Integrated Development Environment NoIce, depurador para sistemas embarcados OLIVER OllyDbg Omniscient Debugger, depurador Java Prism Parallel Debugger IBM Rational Purify Rasta Ring 0 Debugger (RR0D) sdb SIMMON SIMON SoftICE T-Bug, um depurador integrado ao Perl 5 TimeMachineTimeMachine Suite TMON Turbo Debugger WinDbg Valgrind VB Watch Debugger, para Visual Basic 6.0 Visual Studio Debugger xDebug, depurador e perfilador para PHP
Ver também Depuração Teste de software defeito de software Core dump