? Feilsøking i et program egentlig betyr å finne feil og rette dem . A " insekt " er en liten feil i koden som måtte unnvike på grunn varsel av en rekke faktorer. Fordi dataprogrammer har blitt så komplekse, kan selv den minste feil forårsake store problemer ned linjen . Feilsøking i et program i C innebærer å bruke en debugger for å hjelpe fange feil . Det er imidlertid en debugger ikke en erstatning for en programmerer som vet å se etter og felle feil. Kontroll Output
På mindre programmer , kan en programmerer sannsynligvis sjekke visse utganger for å avgjøre om programmet staten fortsatt riktig gjennom utførelse . I dette tilfellet kan sette print uttalelser i et program for å vise variabler som normalt ikke er synlig for brukeren garantere et program som fungerer - eller opp til hvilket punkt det fungerer før du styrter : en
int i = 0 ;
INTJ ;
j = someFunction ( i) //gjør noe arbeid på i og returnerer en verdi
printf ( "% d" , j ) //print j til sikre j er en legitim verdi
C Debuggere
Avhengig av utviklingen miljøet, bør en programmerer har debugging programvare tilgjengelig for å gjelde koden . Disse programmene " gå gjennom " et program som det går , holde styr på variabler og forhold før det oppstår en feil . Når feilen oppstår , vil debugger returnere informasjon om feilen . Også mange debuggers lar programmerere å "gå gjennom " kode en linje av gangen , slik at programmereren kan undersøke gjennomføringen av koden . For Linux-systemer , GNU-prosjektet Debugger ( gdb ) besitter denne funksjonaliteten ( gnu.org /s /gdb ), mens Windows- programmerere kan bruke debugger inkludert i Visual Studio ( Microsoft.com /express ) .
med Debuggere og stoppunkter
debugging programvare bruker ideen om " stoppunkter " der en programmerer kan stoppe et program mid- utførelse under debugging for å avgjøre kode tilstand. For eksempel, hvis koden under krasjer på et tidspunkt , kan programmereren ikke vet hvor eller når feilen oppstod
int i, j ; .
I = getNumber ();
j = j + i ;
j = modifisere ( i, j ) ;
p Det kunne ha skjedd i getNumber funksjon, endre funksjon, eller et sted tidligere i hovedprogrammet . En stoppunkt kan sette et sted hvor kode stopper før feilen , slik at programmereren kan vurdere forholdene før feilen oppstår .
Stepping Gjennom Code
Complex debugging kan innebære går linje for linje gjennom koden . Når programmereren identifiserer en mulig feil sted, kan han kjøre programmet koden linje for linje , holde orden på tilstanden i programmet før det oppstår en feil . Dette gjør det mulig for programmerer å finne den nøyaktige plasseringen av programmet , og tilbake for å se hvor forholdene for feilen oppsto . I dette eksempelet , etter
i = getNumber ();
j = j + i ;
j = modifisere ( i, j ) ;
hvis feilen skjer på " endre "-funksjonen , så programmerer kan Backtrack , og hun vil oppdage at " jeg " fikk en dårlig verdi fra " getNumber ", og dermed ødelagt "endre ".