Hva er Debugging i programmering C?

Hva er Debugging i programmering C?


Feilsøking i et program i hovedsak betyr å finne feil og korrigere dem. En "feil" er en liten feil i koden som kan unngå varsel på grunn av en rekke faktorer. Fordi dataprogrammer har blitt så komplekse, kan selv den minste feil føre til 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 hvordan man skal se etter og felle feil.

Kontroll Output

På mindre programmer, kan en programmerer sannsynligvis sjekke visse utganger for å finne ut om programmet staten fortsatt riktig gjennom utførelse. I dette tilfellet, sette utskrifts uttalelser i et program for å vise variabler som normalt ikke er synlig for brukeren kan garantere et program som fungerer - eller opp til hva peke det fungerer før du styrter:

int i = 0;

intj;

j = someFunction (i) // gjør noe arbeid på i og returnerer en verdi

printf ( "% d", j) // print j for å sikre j er en legitim verdi

C Debuggere

Avhengig av utviklingsmiljø, bør en programmerer har debugging programvare tilgjengelig til å gjelde noen kode. Disse programmene "gå gjennom" et program som det går, holde styr på variabler og vilkår inntil det oppstår en feil. Når feilen først kommer, vil debugger returnere informasjon om feilen. Også mange feilsøkings 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).

Debuggere og stoppunkter

Debugging programvaren bruker ideen om "stoppunkter" der en programmerer kan stoppe et program mid-utførelse under debugging å bestemme kode tilstand. For eksempel, hvis koden under krasjer på et tidspunkt, programmerer kanskje ikke vet hvor eller når feilen oppstod.

int i, j;

i = getNumber ();

j = j + i;

j = modifisere (i, j);

Det kunne ha skjedd i getNumber funksjon, Modify-funksjonen, 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 Through Kode

Complex debugging kan innebære å gå linje for linje gjennom koden. Når programmerer identifiserer en mulig feil sted, kan han kjøre programkode linje for linje, holde styr på tilstanden i programmet før det oppstår en feil. Dette gjør at programmerer for å finne den nøyaktige plasseringen av programmet, og tilbake for å se hvor betingelsene for feilen oppsto. I dette eksemplet

i = getNumber ();

j = j + i;

j = modifisere (i, j);

Hvis feilen skjer på "endre" -funksjonen, så programmerer kan gå tilbake, og hun vil oppdage at "jeg" fikk en dårlig verdi fra «getNumber" og dermed ødelagt "endre".