GDB står for GNU Project Debugger og er et kraftig feilsøkingsverktøy for C (sammen med andre språk som C++). Det hjelper deg å rote rundt i C-programmene dine mens de kjøres, og lar deg også se hva som skjer når programmet krasjer. GDB opererer på kjørbare filer som er binære filer produsert av kompileringsprosessen.
For demoformål er eksemplet nedenfor utført på en Linux-maskin med spesifikasjonene nedenfor.
uname -a>

unavn -a
La oss lære ved å gjøre: -
Start GDB
Gå til Linux-ledeteksten og skriv gdb.
gdb>
gdb
javascript kallefunksjon fra html
Gdb open prompt lar deg vite at den er klar for kommandoer. For å gå ut av gdb, skriv quit eller q.

Å slutte
Kompiler koden
Nedenfor er et program som viser udefinert oppførsel når det kompileres med C99.
Merk: Hvis et objekt som har automatisk lagringsvarighet ikke initialiseres eksplisitt, er verdien ubestemt, der den ubestemte verdien enten er en uspesifisert verdi eller en fellerepresentasjon.
Kompiler nå koden. (her test.c). g flagg betyr at du kan se de riktige navnene på variabler og funksjoner i stabelrammene dine, få linjenummer og se kilden mens du går rundt i den kjørbare filen. -std=C99 flagg innebærer bruk av standard C99 for å kompilere koden. -o flagg skriver byggeutdataene til en utdatafil.
gcc -std=c99 -g -o test test.C>
gcc -std=c99 -g -o test test.C
Kjør GDB med den genererte kjørbare filen
Skriv inn følgende kommando for å starte GDB med den kompilerte kjørbare filen.
gdb ./test>
gdb ./test
Nyttige GDB-kommandoer:
Her er noen nyttige kommandoer for å komme i gang med GDB.
| Kommando | Beskrivelse |
|---|---|
| løp eller r | Utfører programmet fra start til slutt. |
| pause eller b | Setter et bruddpunkt på en bestemt linje. |
| deaktiver | Deaktiverer et bruddpunkt |
| muliggjøre | Aktiverer et deaktivert bruddpunkt. |
| neste eller n | Utfører neste kodelinje uten å dykke inn i funksjoner. |
| steg | Går til neste instruksjon, dykker inn i funksjonen. |
| liste eller l | Viser koden. |
| print eller s | Viser verdien til en variabel. |
| slutte eller q | Går ut av GDB. |
| klar | Fjerner alle bruddpunkter. |
| Fortsette | Fortsetter normal utførelse |
Vis koden
Skriv nå l ved gdb-ledeteksten for å vise koden.

Vis koden
Sett et bruddpunkt
La oss introdusere et bruddpunkt, si linje 5.

Sett et bruddpunkt
Hvis du vil sette bruddpunkt på forskjellige linjer, kan du skrive b linjenummer .Som standard viser jeg bare de første 10 linjene.
Se bruddpunkter
For å se bruddpunktene, skriv info b.

Se bruddpunkter
Deaktiver et bruddpunkt
Etter å ha gjort det ovenfor, la oss si at du ombestemte deg og vil gå tilbake. Type deaktiver b.

Deaktiver et bruddpunkt
Aktiver et deaktivert bruddpunkt på nytt
Som markert i den blå sirkelen, blir Enb n for deaktivert. 9. For å reaktivere det nylig deaktiverte bruddpunktet. Skriv aktiver b.

Aktiver et deaktivert bruddpunkt på nytt
Kjør koden
Kjør koden ved å skrive run eller r. Hvis du ikke har satt noen bruddpunkter, vil run-kommandoen bare utføre hele programmet.

Kjør koden
Skriv ut variabelverdier
For å se verdien av variabel, skriv print variabelnavn eller s variabelnavn .

Skriv ut variabelverdier
Ovenstående viser verdiene som er lagret ved x på tidspunktet for utførelse.
Endre variabelverdier
For å endre verdien av variabel i gdb og fortsette kjøringen med endret verdi, skriv inn variabelnavn .
Feilsøking utgang
Skjermbildet nedenfor viser verdiene til variabler som det er ganske forståelig årsaken til at vi fikk en søppelverdi som utgang. Ved hver utførelse av . /test vi vil motta en annen utgang.
Øvelse: Prøv å bruke sett x = 0 i gdb ved første kjøring og se resultatet av c.
Feilsøking utgang
GDB tilbyr mange flere måter å feilsøke og forstå koden på, som å undersøke stack, minne, tråder, manipulere programmet osv. Jeg håper eksemplet ovenfor hjelper deg med å komme i gang med gdb.
linux make-kommando
Konklusjon
I denne artikkelen har vi diskutert GDB (GNU Debugger) som er et kraftig verktøy i Linux som brukes til å feilsøke C-programmer. Vi har diskutert noen av de følgende trinnene slik at vi kan kompilere koden din med feilsøkingsinformasjon, kjøre GDB, angi bruddpunkt, undersøke variabler og analysere programatferd. Vi har også diskutert GDBs funksjoner, slik som kodeundersøkelse, håndtering av bruddpunkt, variabel manipulering og programkjøringskontroll som tillater oss å effektivt feilsøke og løse problemer.