GDB reiškia GNU Project Debugger ir yra galingas C derinimo įrankis (kartu su kitomis kalbomis, tokiomis kaip C++). Tai padeda naršyti po C programas, kai jos vykdomos, taip pat leidžia pamatyti, kas tiksliai nutinka, kai programa užstringa. GDB veikia su vykdomaisiais failais, kurie yra dvejetainiai failai, sukurti kompiliavimo proceso metu.
Demonstraciniais tikslais toliau pateiktas pavyzdys vykdomas Linux kompiuteryje su toliau pateiktomis specifikacijomis.
uname -a>

uname -a
Mokykimės darydami: -
Paleiskite GDB
Eikite į „Linux“ komandų eilutę ir įveskite gdb.
gdb>
gdb
atidaryti failą su java
Gdb atvira eilutė leidžia žinoti, kad ji yra paruošta komandoms. Norėdami išeiti iš gdb, įveskite quit arba q.

Mesti
Sukompiliuokite kodą
Žemiau yra programa, kuri rodo neapibrėžtą elgesį, kai kompiliuojama naudojant C99.
Pastaba: Jei objektas, turintis automatinę saugojimo trukmę, nėra aiškiai inicijuotas, jo reikšmė yra neapibrėžta, o neapibrėžta reikšmė yra arba nenurodyta reikšmė, arba spąstų atvaizdas.
Dabar sukompiliuokite kodą. (čia bandymas.c). g vėliava reiškia, kad galite matyti tinkamus kintamųjų ir funkcijų pavadinimus savo dėklo rėmeliuose, gauti eilučių numerius ir matyti šaltinį, kai naršote vykdomajame faile. -std=C99 vėliavėlė reiškia naudoti standartą C99 kodui sudaryti. -o vėliava rašo kūrimo išvestį į išvesties failą.
gcc -std=c99 -g -o test test.C>
gcc -std=c99 -g -o bandomasis testas.C
Paleiskite GDB su sugeneruotu vykdomuoju failu
Įveskite šią komandą, kad paleistumėte GDB su sukompiliuotu vykdomuoju failu.
gdb ./test>
gdb ./test
Naudingos GDB komandos:
Čia yra keletas naudingų komandų norint pradėti naudotis GDB.
komandą | apibūdinimas |
---|---|
paleisti arba r | Vykdo programą nuo pradžios iki pabaigos. |
pertrauka arba b | Nustato lūžio tašką tam tikroje eilutėje. |
išjungti | Išjungia pertraukos tašką |
įjungti | Įjungia išjungtą pertraukos tašką. |
kitas arba n | Vykdo kitą kodo eilutę, nesigilindamas į funkcijas. |
žingsnis | Pereinama prie kitos instrukcijos, pasinerdama į funkciją. |
sąrašą arba l | Rodo kodą. |
spausdinti arba p | Rodo kintamojo reikšmę. |
mesti arba q | Išeina iš GDB. |
aišku | Išvalo visus pertraukos taškus. |
Tęsti | Tęsiamas įprastas vykdymas |
Rodyti kodą
Dabar įveskite l į gdb raginimą, kad būtų rodomas kodas.

Rodyti kodą
Nustatykite pertraukos tašką
Įveskime lūžio tašką, tarkime 5 eilutę.

Nustatykite pertraukos tašką
Jei norite nustatyti lūžio tašką skirtingose eilutėse, galite įvesti b eilės numeris .Pagal numatytuosius nustatymus sąrašas arba l rodomos tik pirmosios 10 eilučių.
Peržiūrėkite lūžio taškus
Norėdami pamatyti lūžio taškus, įveskite info b.

Peržiūrėkite lūžio taškus
Išjungti pertraukos tašką
Atlikę aukščiau nurodytus veiksmus, tarkime, kad persigalvojote ir norite grįžti. Tipas išjungti b.

Išjungti pertraukos tašką
referencinis kintamasis Java
Iš naujo įgalinkite išjungtą pertraukos tašką
Kaip pažymėta mėlyname apskritime, Enb tampa n neįgaliesiems. 9. Norėdami iš naujo įjungti neseniai išjungtą pertraukos tašką. Įveskite įgalinti b.

Iš naujo įgalinkite išjungtą pertraukos tašką
Paleiskite kodą
Vykdykite kodą įvesdami paleisti arba r. Jei nenustatėte jokių lūžio taškų, vykdymo komanda tiesiog vykdys visą programą.

Paleiskite kodą
Spausdinti kintamųjų reikšmes
Norėdami pamatyti kintamojo reikšmę, įveskite print kintamojo_pavadinimas arba p kintamojo_pavadinimas .

Spausdinti kintamųjų reikšmes
Aukščiau rodomos reikšmės, saugomos x vykdymo metu.
Keisti kintamųjų reikšmes
Norėdami pakeisti gdb kintamojo reikšmę ir tęsti vykdymą su pakeista reikšme, įveskite set kintamojo_pavadinimas .
Derinimo išvestis
Žemiau esančioje ekrano kopijoje rodomos kintamųjų reikšmės, iš kurių visiškai suprantama priežastis, kodėl kaip išvestį gavome šiukšlių reikšmę. Kiekvienos įvykdymo metu. /testas gausime kitokią išvestį.
Pratimas: Pabandykite naudoti rinkinį x = 0 gdb pirmą kartą ir pamatysite c išvestį.
Derinimo išvestis
GDB siūlo daug daugiau būdų, kaip derinti ir suprasti kodą, pvz., tirti krūvą, atmintį, gijas, manipuliuoti programa ir tt Tikiuosi, kad aukščiau pateiktas pavyzdys padės jums pradėti dirbti su gdb.
Išvada
Šiame straipsnyje aptarėme GDB (GNU Debugger), kuris yra galingas Linux įrankis, naudojamas C programoms derinti. Aptarėme kai kuriuos toliau nurodytus veiksmus, kad galėtume sudaryti jūsų kodą su derinimo informacija, paleisti GDB, nustatyti pertraukos tašką, ištirti kintamuosius ir analizuoti programos elgseną. Taip pat aptarėme GDB funkcijas, tokias kaip kodo tyrimas, lūžio taško valdymas, kintamųjų manipuliavimas ir programos vykdymo kontrolė, kurios leidžia efektyviai derinti ir išspręsti problemas.