Liste over GDB -kommandoer og hva de gjør

Liste over GDB -kommandoer og hva de gjør
Når du jobber med C ++, C eller Fortran, vil du komme over GDB, et forkortelse for Gnu Debugger, Brukes til feilsøkingsprogrammer skrevet i C, C ++ og andre språk. Debuggeren kan påberopes på terminalen og kommer forhåndsinstallert på Linux -terminalen. For å være komfortabel med å bruke GNU -feilsøkingen på terminalen, er det viktig å forstå de forskjellige kommandoene som er tilgjengelige og hva de gjør. Denne guiden dekker de viktigste kommandoene mens du gir eksempler på hvordan du bruker dem. Sjekk de ut!

Vanlige GDB -kommandoer

Det er forskjellige måter å påkalle GNU -feilsøking. Du kan skrive direkte GDB på terminalen for å åpne konsollen.

Alternativt kan du ringe feilsøkingen med en kjørbar fil. Hvis du har en kjørbar fil, som et C- eller C ++ -program, som du ønsker å feilsøke, kan du samle den ved hjelp av -g alternativ. For vårt eksempel vil vi bruke en prøve1.CPP fil.

For å kompilere den ved hjelp av G ++ -kompilatoren, vil kommandoen være:

$ g ++ -g -o prøve1 prøve1.CPP

Her legger vi til -o -alternativet for å skrive det sammensatte programmet til filen som heter prøve1.

Når du er samlet, kan du påkalle GNU -feilsøkingen mens du legger ved den kompilerte utgangsfilen til feilsøking. Kommandoen vil være:

$ GDB Sample1

En konsoll åpnes, og du kan bruke tilgjengelige GDB -kommandoer for å utføre forskjellige aktiviteter. De vanlige kommandoene inkluderer:

1. slutte: For å avslutte GDB -konsollen, SLUTT eller q.

2. Kjør [args]: Basert på funksjonene i programmet, kan du påkalle funksjonen for å kjøre ved hjelp av denne kommandoen og legge til de nødvendige argumentene. For vår sak har vi Getsquare funksjon, som tar et argument for nummeret. Derfor, hvis vi trenger å få torget til et tall, skriver vi løpe etterfulgt av nummeret. La oss for eksempel få torget på 6. Utgangen vil være som vist nedenfor:

Nederst kan du merke at programmet returnerte utdataene til torget. Du kan kjøre flere alternativer med forskjellige argumenter.

3. hjelp: Det åpner den manuelle siden for GNU -feilsøkingen med alle kommandoer som er tilgjengelige for bruk.

Du kan begrense hjelpesiden ved å spesifisere hvilken klasse kommandoer du ønsker å få den manuelle siden deres. For dette brukes syntaksen nedenfor:

$ hjelp [klassenavn]

For eksempel for å få den manuelle siden for klassen løping, Følgende utgang vil være:

4. gå i stykker: Når du trenger å feilsøke programmet, kan du legge til forskjellige breakpoints ved å bruke Break -kommandoen. Dessuten er det flere måter å legge til et bruddpunkt.

De vanlige måtene inkluderer:

B [Funksjonsnavn]
Break [linjetall]
Break [Funksjonsnavn]
Break *[adresse]

For eksempel, hvis du kjenner et spesifikt funksjonsnavn i programmet og ønsker å lage et bruddpunkt på det for feilsøking, kan du bruke forrige syntaks. La oss lage et bruddpunkt for en funksjon som er navngitt Getsquare I følgende program:

I forrige utgang opprettet vi Breakpoint og den viste informasjonen i konsollen.

Hvis du prøver å utføre programmet, vil det ta en pause ved breakpoint. La oss for eksempel få torget på 12 ved å bruke Løp 12.

Debuggeren stopper ved breakpunktet der det spesifiserte funksjonsnavnet er. På dette tidspunktet kan du feilsøke programmet ditt og fortsette når du har alt som fungerer bra.

5. Fortsett eller c: Når feilsøking er fullført, og du ønsker å gjenoppta utførelsen av kommandoen uten det angitte bruddpunktet, kjør Continue Command. Den vil utføre kommandoen til neste breakpoint eller slutten av programmet. Hvis du ønsker å legge til antall ganger for å gjenta fortsettelseskommandoen, kan du legge til tellingen.

De to syntaksene er:

Fortsett eller c
C [Gjenta antall]

La oss fortsette uten gjentatte tellinger for vår sak.

Det gir utgangen fra den stoppede kommandoen. Hvis vi hadde forskjellige argumenter, ville det gi hvert resultat etter et bruddpunkt. La oss for eksempel påkalle Kjør 4 6 8, Bruk deretter Fortsette kommando for å se hva som skjer.

Du vil merke deg etter hvert argument om at programmet oppfyller et breakpoint. Når vi kjører fortsettelseskommandoen, gjenopptar den utførelsen.

6. NESTE: Når programmet oppfyller et bruddpunkt, kan du skrive NESTE eller n For å skrive ut neste linje i utførelse.

7. Slett: Hvis du har forskjellige bruddpunkter og sjekkpunkter, kan du slette dem ved hjelp av følgende kommando. Hvis du løper d eller slett Uten argumenter sletter det alle breakpoints og sjekkpunkter. Du kan imidlertid spesifisere hvilken du vil slette ved å velge nummeret.

8. klar: For å slette et bruddpunkt tilknyttet et gitt funksjonsnavn, bruk neste klare kommando etterfulgt av funksjonsnavnet:

På dette tidspunktet har vi ikke lenger noe breakpoint i programmet vårt.

Hvis det ikke er et alternativ å slette et bruddpunkt, hva med å deaktivere og aktivere dem når du ønsker?

9. Deaktiver og muliggjøre: For å deaktivere et bruddpunkt, spesifiser nummeret.

Senere kan du bruke aktiveringskommandoen etterfulgt av nummeret for å aktivere det tilbake.

10. info: Du kan få detaljene om tilgjengelige sjekkpunkter og breakpoints. Bruk følgende kommando for å få detaljene om alle brytepunktene eller sjekkpunktene:

Info breakpoints
Info sjekkpunkter

For å spesifisere et bruddpunkt eller sjekkpunkt, bruk følgende syntaks:

Info breakpoints [breakpoint-number]
Info Checkpoint [Breakpoint-Number]

11. sett args: å angi en argumentliste som skal brukes når du utfører løpe Kommando, bruk sett args etterfulgt av argumentene. For eksempel:

sett Args 2 4

Hvis vi påkaller løpekommandoen, vil det få torget til de to argumentene.

Du kan se den tilgjengelige listen over argumenter ved hjelp av Vis args kommando.

Konklusjon

Vi har dekket den vanligste GDB -listen over kommandoer i Linux. Med litt praksis vil det bli lettere å bruke kommandoene for å oppnå forskjellige funksjonaliteter. Forhåpentligvis ga denne artikkelen en overhånd ved bruk av GNU -feilsøkingskommandoer.