logo

GDB (soli pa solim ievads)

GDB apzīmē GNU Project Debugger un ir spēcīgs C atkļūdošanas rīks (kopā ar citām valodām, piemēram, C++). Tas palīdz jums ieskatīties C programmās, kamēr tās tiek izpildītas, kā arī ļauj jums redzēt, kas tieši notiek, kad programma avarē. GDB darbojas ar izpildāmiem failiem, kas ir bināri faili, kas iegūti kompilācijas procesā.

Demonstrācijas nolūkos tālāk redzamais piemērs tiek izpildīts Linux mašīnā ar tālāk norādītajām specifikācijām.



uname -a>
uname

uname -a

Mācīsimies darot: -

Sāciet GDB

Dodieties uz savu Linux komandu uzvedni un ierakstiet gdb.

gdb>

gdb



kur atrodas klēpjdatora tastatūras ievietošanas taustiņš

Gdb atvērtā uzvedne ļauj jums zināt, ka tā ir gatava komandām. Lai izietu no gdb, ierakstiet quit vai q.

quit_gdb

Pamest

Apkopojiet kodu

Tālāk ir parādīta programma, kas parāda nedefinētu darbību, kad tā tiek kompilēta, izmantojot C99. saraksts-1



Piezīme: Ja objekts, kuram ir automātisks glabāšanas ilgums, nav skaidri inicializēts, tā vērtība ir nenoteikta, kur nenoteiktā vērtība ir vai nu nenoteikta vērtība, vai slazds.

Tagad apkopojiet kodu. (šeit test.c). g karogs Tas nozīmē, ka jūs varat redzēt mainīgo un funkciju īpašvārdus savos steka rāmjos, iegūt rindu numurus un redzēt avotu, pārvietojoties izpildāmajā failā. -std=C99 karodziņš nozīmē izmantot standarta C99, lai apkopotu kodu. -o karogs ieraksta būvējuma izvadi izvades failā.

gcc -std=c99 -g -o test test.C>

gcc -std=c99 -g -o testa tests.C

Palaidiet GDB ar ģenerēto izpildāmo failu

Ievadiet šo komandu, lai palaistu GDB ar kompilēto izpildāmo failu.

gdb ./test>

gdb ./test

Noderīgas GDB komandas:

Šeit ir dažas noderīgas komandas, lai sāktu darbu ar GDB.

Pavēli Apraksts
palaist vai r Izpilda programmu no sākuma līdz beigām.
pārtraukums vai b Iestata pārtraukuma punktu noteiktā rindā.
atspējot Atspējo pārtraukuma punktu
iespējot Iespējo atspējotu pārtraukuma punktu.
nākamais vai n Izpilda nākamo koda rindiņu, neiedziļinoties funkcijās.
solis Pāriet uz nākamo norādījumu, iedziļinoties funkcijā.
saraksts vai l Parāda kodu.
drukāt vai lpp Parāda mainīgā vērtību.
atmest vai q Iziet no GDB.
skaidrs Notīra visus pārtraukuma punktus.
Turpināt Turpina normālu izpildi

Parādiet kodu

Tagad gdb uzvednē ierakstiet l, lai parādītu kodu.

pārtraukuma punkts

Parādiet kodu

Iestatiet pārtraukuma punktu

Ieviesīsim pārtraukuma punktu, teiksim 5. rindiņu.

info_b

Iestatiet pārtraukuma punktu

Ja vēlaties ievietot pārtraukuma punktu dažādās rindās, varat ierakstīt b rindas_numurs .Pēc noklusējuma saraksts vai l parāda tikai pirmās 10 rindiņas.

mylivecricket spēlē dzīvajā kriketā

Skatiet pārtraukuma punktus

Lai redzētu pārtraukuma punktus, ierakstiet info b.

atspējot

Skatiet pārtraukuma punktus

Atspējot pārtraukuma punktu

Pabeidzot iepriekš minēto, pieņemsim, ka esat pārdomājis un vēlaties atgriezties. Ierakstiet atspējot b.

iespējot-1

Atspējot pārtraukuma punktu

Atkārtoti iespējot atspējotu pārtraukumpunktu

Kā atzīmēts zilajā aplī, Enb kļūst par n invalīdiem. 9. Lai atkārtoti iespējotu nesen atspējoto pārtraukuma punktu. Ierakstiet iespējot b.

pirmais_skrējiens

Atkārtoti iespējot atspējotu pārtraukumpunktu

Palaidiet kodu

Palaidiet kodu, ierakstot palaist vai r. Ja neesat iestatījis nevienu pārtraukuma punktu, izpildes komanda vienkārši izpildīs visu programmu.

print_value_x

Palaidiet kodu

Drukājiet mainīgās vērtības

Lai redzētu mainīgā vērtību, ierakstiet print mainīgā_nosaukums vai p mainīgā_nosaukums .

Drukājiet mainīgās vērtības

Iepriekš ir parādītas vērtības, kas izpildes laikā saglabātas x.

Mainiet mainīgās vērtības

Lai mainītu mainīgā vērtību gdb un turpinātu izpildi ar mainīto vērtību, ierakstiet set mainīgā_nosaukums .

Atkļūdošanas izvade

Zemāk redzamajā ekrānuzņēmumā ir redzamas mainīgo vērtības, no kurām ir diezgan saprotams iemesls, kāpēc mēs saņēmām atkritumu vērtību kā izvadi. Katrā izpildes reizē. /pārbaude mēs saņemsim citu rezultātu.

Vingrinājums: mēģiniet izmantot set x = 0 gdb pirmajā palaišanas reizē un skatiet c izvadi.

Atkļūdošanas izvade

GDB piedāvā daudzus citus veidus, kā atkļūdot un izprast kodu, piemēram, steku, atmiņas, pavedienu pārbaudi, manipulēšanu ar programmu utt. Ceru, ka iepriekš minētais piemērs palīdzēs jums sākt darbu ar gdb.

Secinājums

Šajā rakstā mēs esam apsprieduši GDB (GNU atkļūdotājs), kas ir spēcīgs rīks Linux, ko izmanto C programmu atkļūdošanai. Mēs esam apsprieduši dažas no tālāk norādītajām darbībām, lai mēs varētu apkopot jūsu kodu ar atkļūdošanas informāciju, palaist GDB, iestatīt pārtraukuma punktu, pārbaudīt mainīgos un analizēt programmas darbību. Mēs esam arī apsprieduši GDB funkcijas, piemēram, koda pārbaudi, pārtraukuma punktu pārvaldību, mainīgo manipulācijas un programmas izpildes kontroli, kas ļauj mums efektīvi atkļūdot un atrisināt problēmas.