GDB står for GNU Project Debugger og er et kraftfuldt fejlfindingsværktøj til C (sammen med andre sprog som C++). Det hjælper dig med at finde rundt i dine C-programmer, mens de kører, og giver dig også mulighed for at se, hvad der præcist sker, når dit program går ned. GDB opererer på eksekverbare filer, som er binære filer produceret af kompileringsprocessen.
Til demoformål udføres eksemplet nedenfor på en Linux-maskine med nedenstående specifikationer.
uname -a>

unavn -a
Lad os lære ved at gøre: -
Start GDB
Gå til din Linux kommandoprompt og skriv gdb.
gdb>
gdb
css ændre billedstørrelse
Gdb åben prompt fortæller dig, at den er klar til kommandoer. For at afslutte gdb skal du skrive quit eller q.

At holde op
Kompiler koden
Nedenfor er et program, der viser udefineret adfærd, når det kompileres ved hjælp af C99.
Bemærk: Hvis et objekt, der har automatisk lagringsvarighed, ikke initialiseres eksplicit, er dets værdi ubestemt, hvor den ubestemte værdi enten er en uspecificeret værdi eller en trap-repræsentation.
Kompiler nu koden. (her test.c). g flag betyder, at du kan se de rigtige navne på variabler og funktioner i dine stak-rammer, få linjenumre og se kilden, mens du træder rundt i den eksekverbare. -std=C99 flag indebærer brug af standard C99 til at kompilere koden. -o flag skriver build-outputtet til en outputfil.
gcc -std=c99 -g -o test test.C>
gcc -std=c99 -g -o test test.C
Kør GDB med den genererede eksekverbare
Skriv følgende kommando for at starte GDB med den kompilerede eksekverbare.
gdb ./test>
gdb ./test
Nyttige GDB-kommandoer:
Her er et par nyttige kommandoer til at komme i gang med GDB.
Kommando | Beskrivelse |
---|---|
løb eller r | Udfører programmet fra start til slut. |
pause eller b | Indstiller et brudpunkt på en bestemt linje. |
deaktivere | Deaktiverer et brudpunkt |
aktivere | Aktiverer et deaktiveret brudpunkt. |
næste eller n | Udfører den næste kodelinje uden at dykke ned i funktioner. |
trin | Går til næste instruktion, dykker ned i funktionen. |
liste eller l | Viser koden. |
print eller s | Viser værdien af en variabel. |
afslutte eller q | Udgår af GDB. |
klar | Rydder alle brudpunkter. |
Blive ved | Fortsætter normal udførelse |
Vis koden
Skriv nu l ved gdb-prompten for at få vist koden.

Vis koden
Indstil et brudpunkt
Lad os introducere et brudpunkt, siger linje 5.

Indstil et brudpunkt
Hvis du vil sætte brudpunkt på forskellige linjer, kan du skrive b linjenummer .Som standard viser jeg kun de første 10 linjer.
Se brudpunkter
For at se brudpunkterne, skriv info b.

Se brudpunkter
Deaktiver et brudpunkt
Efter at have gjort ovenstående, lad os sige, at du har ændret mening, og du vil vende tilbage. Type deaktiver b.

Deaktiver et brudpunkt
Genaktiver et deaktiveret brudpunkt
Som markeret i den blå cirkel bliver Enb til n for deaktiveret. 9. For at genaktivere det nyligt deaktiverede brudpunkt. Skriv enable b.

Genaktiver et deaktiveret brudpunkt
Kør koden
Kør koden ved at skrive run eller r. Hvis du ikke har indstillet nogen breakpoints, vil run-kommandoen blot udføre det fulde program.

Kør koden
Udskriv variabelværdier
For at se værdien af variabel skal du skrive print variabel_navn eller s variabel_navn .

Udskriv variabelværdier
Ovenstående viser værdierne gemt ved x på tidspunktet for udførelse.
Skift variabelværdier
For at ændre værdien af variabel i gdb og fortsætte eksekveringen med ændret værdi, skriv sæt variabel_navn .
Debugging output
Nedenstående skærmbillede viser værdierne af variabler, hvorfra det er helt forståeligt grunden til, at vi fik en skraldværdi som output. Ved hver udførelse af . /prøve vi vil modtage et andet output.
Øvelse: Prøv at bruge sæt x = 0 i gdb ved første kørsel og se output fra c.
Debugging output
GDB tilbyder mange flere måder at fejlsøge og forstå din kode på, som at undersøge stack, hukommelse, tråde, manipulere programmet osv. Jeg håber, at ovenstående eksempel hjælper dig med at komme i gang med gdb.
linux make kommando
Konklusion
I denne artikel har vi diskuteret GDB (GNU Debugger), som er et kraftfuldt værktøj i Linux, der bruges til at fejlfinde C-programmer. Vi har diskuteret nogle af de følgende trin, så vi kan kompilere din kode med fejlfindingsoplysninger, køre GDB, indstille breakpoint, undersøge variabler og analysere programadfærd. Vi har også diskuteret GDBs funktioner, såsom kodeundersøgelse, breakpoint management, variabel manipulation og programudførelseskontrol, som giver os mulighed for effektivt at fejlsøge og problemløsning.