GDB on lyhenne sanoista GNU Project Debugger ja se on tehokas C-virheenkorjaustyökalu (muiden kielten, kuten C++:n, kanssa). Sen avulla voit selata C-ohjelmia niiden suorittamisen aikana ja voit myös nähdä, mitä tarkalleen tapahtuu, kun ohjelma kaatuu. GDB toimii suoritettavilla tiedostoilla, jotka ovat käännösprosessin tuottamia binääritiedostoja.
Esittelytarkoituksia varten alla oleva esimerkki suoritetaan Linux-koneella, jossa on alla olevat tiedot.
uname -a>

uname -a
Opitaan tekemällä: -
Käynnistä GDB
Siirry Linuxin komentokehotteeseen ja kirjoita gdb.
gdb>
gdb
vb ja vb net
Gdb:n avoin kehote kertoo, että se on valmis komentoja varten. Poistu gdb:stä kirjoittamalla quit tai q.

Lopettaa
Kokoa koodi
Alla on ohjelma, joka näyttää määrittelemättömän toiminnan, kun se on käännetty C99:llä.
Huomautus: Jos objektia, jolla on automaattinen tallennusaika, ei ole alustettu eksplisiittisesti, sen arvo on määrittelemätön, jolloin määrittelemätön arvo on joko määrittelemätön arvo tai trap-esitys.
Kääntäkää nyt koodi. (tässä testi.c). g lippu tarkoittaa, että voit nähdä muuttujien ja funktioiden oikeat nimet pinokehyksissäsi, saada rivinumeroita ja nähdä lähteen, kun liikut suoritettavassa tiedostossa. -std=C99-lippu tarkoittaa standardin C99 käyttöä koodin kääntämiseen. -o lippu kirjoittaa koontitulosteen tulostiedostoon.
gcc -std=c99 -g -o test test.C>
gcc -std=c99 -g -o testitesti.C
Suorita GDB luodulla suoritettavalla tiedostolla
Kirjoita seuraava komento käynnistääksesi GDB käännetyllä suoritettavalla tiedostolla.
gdb ./test>
gdb ./test
Hyödyllisiä GDB-komentoja:
Tässä on muutamia hyödyllisiä komentoja GDB:n käytön aloittamiseen.
Komento | Kuvaus |
---|---|
juokse tai r | Suorittaa ohjelman alusta loppuun. |
tauko tai b | Asettaa keskeytyskohdan tietylle riville. |
Poista käytöstä | Poistaa keskeytyskohdan käytöstä |
ota käyttöön | Ottaa käyttöön poistetun keskeytyskohdan. |
seuraava tai n | Suorittaa seuraavan koodirivin sukeltamatta toimintoihin. |
askel | Siirtyy seuraavaan ohjeeseen ja sukeltaa toimintoon. |
lista tai l | Näyttää koodin. |
tulostaa tai s | Näyttää muuttujan arvon. |
lopeta tai q | Poistuu GDB:stä. |
asia selvä | Tyhjentää kaikki keskeytyskohdat. |
jatkaa | Jatkaa normaalia suoritusta |
Näytä koodi
Kirjoita nyt gdb-kehotteeseen l näyttääksesi koodin.

Näytä koodi
Aseta keskeytyskohta
Otetaan käyttöön taukokohta, sanotaan rivi 5.

Aseta keskeytyskohta
Jos haluat asettaa keskeytyskohdan eri riveille, voit kirjoittaa b rivin_numero .Oletusarvoisesti luettelo tai l näyttää vain ensimmäiset 10 riviä.
Näytä keskeytyskohdat
Nähdäksesi keskeytyskohdat, kirjoita info b.

Näytä keskeytyskohdat
poikkeus heittää java
Poista keskeytyspiste käytöstä
Kun olet tehnyt yllä olevat, oletetaan, että muutit mielesi ja haluat palata. Tyyppi pois käytöstä b.

Poista keskeytyspiste käytöstä
Ota pois käytöstä poistettu keskeytyskohta uudelleen käyttöön
Kuten sinisessä ympyrässä on merkitty, Enb muuttuu n:ksi vammaisille. 9. Ota äskettäin käytöstä poistettu keskeytyskohta uudelleen käyttöön. Kirjoita päälle b.

Ota pois käytöstä poistettu keskeytyskohta uudelleen käyttöön
Suorita koodi
Suorita koodi kirjoittamalla run tai r. Jos et ole asettanut keskeytyskohtia, suorita komento yksinkertaisesti suorittaa koko ohjelman.

Suorita koodi
Tulosta muuttujan arvot
Näet muuttujan arvon kirjoittamalla print muuttujan_nimi tai p muuttujan_nimi .

Tulosta muuttujan arvot
Yllä oleva näyttää x:ään tallennetut arvot suoritushetkellä.
Muuta muuttujien arvoja
Jos haluat muuttaa muuttujan arvoa gdb:ssä ja jatkaa suoritusta muuttuneella arvolla, kirjoita set muuttujan_nimi .
Virheenkorjaustulos
Alla kuvakaappaus näyttää muuttujien arvot, joista on täysin ymmärrettävää, miksi saimme roskaarvon lähdöksi. Jokaisessa suorituksessa. /testata saamme toisenlaisen tulosteen.
Harjoitus: Kokeile käyttää set x = 0 gdb:ssä ensimmäisellä kerralla ja katso c:n tulos.
Virheenkorjaustulos
GDB tarjoaa monia muita tapoja virheenkorjaukseen ja koodin ymmärtämiseen, kuten pinon, muistin, säikeiden tutkiminen, ohjelman käsittely jne. Toivon, että yllä oleva esimerkki auttaa sinua pääsemään alkuun gdb:n kanssa.
Johtopäätös
Tässä artikkelissa olemme keskustelleet GDB:stä (GNU Debugger), joka on tehokas työkalu Linuxissa, jota käytetään C-ohjelmien virheenkorjaukseen. Olemme keskustelleet joistakin seuraavista vaiheista, jotta voimme koota koodisi virheenkorjaustiedoilla, suorittaa GDB:n, asettaa keskeytyskohdan, tutkia muuttujia ja analysoida ohjelman toimintaa. Olemme myös keskustelleet GDB:n ominaisuuksista, kuten koodin tutkimisesta, keskeytyspisteiden hallinnasta, muuttujien manipuloinnista ja ohjelman suorittamisen ohjauksesta, joiden avulla voimme tehokkaasti korjata virheitä ja ratkaista ongelmat.