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 -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.

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.
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.

Parādiet kodu
Iestatiet pārtraukuma punktu
Ieviesīsim pārtraukuma punktu, teiksim 5. rindiņu.

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.

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.

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.

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.

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.