logo

GDB (vaiheittainen esittely)

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>
sinä nimi

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.

quit_gdb

Lopettaa

Kokoa koodi

Alla on ohjelma, joka näyttää määrittelemättömän toiminnan, kun se on käännetty C99:llä. lista-1



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.

keskeytyskohta

Näytä koodi

Aseta keskeytyskohta

Otetaan käyttöön taukokohta, sanotaan rivi 5.

info_b

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.

Poista käytöstä

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.

käyttöön-1

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.

ensimmäinen_ajo

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.

tulostus_arvo_x

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.