Video: GDB 2024
Noen ganger kan problemet med programmeringsinstruksjonene C ikke bestemmes ved bare å se på programflyt. Nei, du må gå ned og skitne i minnet og se på en variables verdi mens koden kjører. Koden:: Blokkens debugger lar deg se hvilken som helst variabel i et program, og viser deg variabelenes innhold når programmet kjører.
HVOR VARIABLES LURK
#include # include int main () {int x; int * px; px = & x; for (x = 0; x <10; x ++) printf ("% dn", * px); return 0;}
Øvelse 1 : Opprett en ny kode:: Blokkerer prosjekt med feilsøking aktiv. Kopier kildekoden over til hovedmenyen. c-fil. Bygg og løp. Se om det virker.
Det gjør ikke, eller det burde ikke, med mindre du mistyped noe. Tid til å feilsøke! Følg disse trinnene:
-
Klikk på musen for å plassere den i begynnelsen av Linje 6, hvor heltalvariabelen x er erklært.
-
Klikk på Kjør til markør på verktøylinjen Feilsøking.
-
Klikk på Debugging Windows-knappen.
-
Velg kommandoen Klokker.
Kluksvinduet vises.
-
Klikk på musen i den første blå boksen i vinduet Watches.
-
Skriv x for variabel x og trykk Enter-tasten.
-
Skriv px på neste linje for å undersøke minnestedet som er lagret i pekepekeren. Trykk Enter-tasten.
-
Skriv * px på den tredje linjen for å undersøke innholdet i minnestedet som er lagret av pekeren px. Trykk Enter-tasten.
Du kan se at verdier vises for disse variablene, selv om verdiene er uninitialized. For eksempel, på skjermen, inneholder variabel x verdien 56, hvilket er hva som helst tilfeldig søppel vises i minnet før variabelen er tilordnet en verdi.
Inntil en variabel er initialisert, er innholdet søppel.
-
Klikk på Neste linje-knappen på verktøylinjen Feilsøking til markøren er på Linje 10, begynnelsen på forløpet.
Når verdien av pekeren px er tilordnet minneplasseringen til variabel x , må du være oppmerksom på klokken. Øyeblikkelig ser du en minneadresse som vises i variabel px, og du ser * px-variabelen sett lik den verdien som er tilordnet variabel x . Pekeren er blitt initialisert!
-
Klikk på Neste linje-knappen igjen.
Når forløp starter, initialiserer den verdien av variabel x . Du ser den verdiendringen i vinduet Watches, sammen med verdien av * px. Verdien av px (adressen til variabelen x ) endres ikke.
-
Fortsett å gå gjennom koden for å se at verdiene endres.
-
Klikk på Stopp-knappen når du er ferdig.
Undersøk variabler i minnet er enda en god måte å se hva som skjer med koden din. Hvis variablene ikke popper slik de burde, må du sjekke setningene som manipulerer disse variablene.
Ved å undersøke pekere i minnet kan du også få en bedre ide om hvordan pekere fungerer.