? Depuração de um programa essencialmente significa encontrar os erros e corrigi-los. Um "bug" é um pequeno erro no código que pode escapar aviso por causa de uma variedade de fatores. Porque os programas de computador tornaram-se tão complexo , mesmo o menor erro pode causar grandes problemas para baixo da linha . Depuração de um programa em C envolve o uso de um depurador para ajudar a identificar erros . No entanto, um depurador não é um substituto para um programador que sabe como procurar e interceptar erros . Verificando saída  
 programas menores , um programador pode provavelmente verificar certas saídas para determinar se o estado do programa permanece correta ao longo da execução . Neste caso , a inserção de instruções de impressão em um programa para mostrar as variáveis que normalmente não são visíveis para o usuário pode garantir um programa funciona - ou até que ponto ele funciona antes de cair : 
 
 int i = 0; 
 
 intj ; 
 
 j = someFunction (i ) //faz algum trabalho em i e retorna um valor 
 
 printf (" % d" , j ) //j para impressão garantir j é um valor legítimo 
 C depuradores 
 
 Dependendo do ambiente de desenvolvimento, um programador deve ter depuração software disponível para aplicar a qualquer código. Estes programas de " atravessar " um programa como ele é executado , mantendo o controle de variáveis e condições até que ocorra um erro. Quando o erro ocorre, o depurador irá retornar informações sobre o erro. Além disso, muitos depuradores permitem que os programadores " percorrer " código uma linha de cada vez, para que o programador possa examinar a execução do código. Para sistemas Linux , o GNU Project Debugger ( GDB) possuem essa funcionalidade ( gnu.org /s /gdb ), enquanto os programadores do Windows pode usar o depurador incluídos no Visual Studio ( Microsoft.com /express ) . 
 < Br > 
 depuradores e pontos de interrupção 
 
 depuração software usa a idéia de " breakpoints ", onde um programador pode parar um programa de meados de execução durante a depuração para determinar o estado de código. Por exemplo, se o código abaixo acidentes em algum momento , o programador pode não saber onde ou quando o erro ocorreu 
 
 int i , j; . 
 
 I = getNumber (); 
 
 j = j + i; 
 
 j = modificar (i, j) ; 
 
 poderia ter ocorrido em função getNumber , a função de modificar, ou em algum lugar no início do programa principal . Um ponto de interrupção pode definir um lugar onde o código é interrompida antes do erro , de modo que o programador pode avaliar as condições antes de ocorrer o erro. 
 Percorrendo o código 
 
 Complexo depuração pode envolver indo linha por linha através de código. Uma vez que o programador identifica uma possível localização do erro , ele pode executar a linha de código do programa por linha, mantendo o controle do estado do programa até que ocorra um erro. Isso permite que o programador para identificar a localização exata do programa, e voltar atrás para ver onde as condições do erro originou. Neste exemplo, 
 
 i = getNumber (); 
 
 j = j + i; 
 
 j = modificar (i, j) ; 
 
 se o erro acontece na função de " modificar " , em seguida, o programador pode voltar atrás , e ela vai descobrir que "i" recebeu um valor ruim em " getNumber " e, assim, corrompido " modificar ". 
 < br >