Debugging (atkļūdošana)

Kā programmētājiem, agrāk vai vēlāk var gadīties nonākt situācijā, kad esam iesprūduši kādas problēmas risināšanā. Tas var būt gan Jūsu paša kodā, gan arī (un kas būs ticamāk reālos darba apstākļos) kāda cita kodā. Šis raksts ir paredzēts, lai iepazītos ar dažādiem veidiem, kas var palīdzēt atkļūdot jūsu programmatūru.

Kļūdu ziņas

Pirmā lieta, ko darīt ir diezgan paredzama – pārbaudīt vai visur ir semikoli, koli un iekaviņas. Palaist garām kādu iekavu vai semikolu ir diezgan ierasta kļūda. Ar laiku var pamanīt vai arī google sameklēt kļūdu kodus, kas saistīti ar nepareizu sintaksi. Piemēram, “Not declared in this context…”  iespējams kļūda nozīmē, ka funkcija/mainīgais ir ierakstīta starp nepareizajām iekavām vai kāda iekava ir piemirsta.

Protams, jāatceras – ja Jums ir šāda problēma, visticamāk vēl kadam ir bijusi tāda pati problēma. Tas, ko Jūs varat izdarīt ir gan kļūdas, gan “izņēmuma” (exception) nosaukumu un aprakstu pameklēt google, lai atrastu pareizo risinājumu.

Kā arī, būtu vēlāms atcerēties, ko nozīmē biežāk redzamas kļūdas, kā piemēram – “wrong format exception, “out of bounds”, vai “buffer overflow”.

Atkļūdotājs

Ir nepieciešamas iemācīties izmantot jau eksistējošus rīkus kā, piemēram, “atkļūdotāju” (debugger). Attiecīgi programmas izpildes laikā tādejādi var pārbaudīt dažādu mainīgo vērtības, kā arī programmas darbību pa soļiem. Ļoti plaši izmantots rīks.

Ko darīt, kad tiek darbināta programma uz iegultās sistēmas vai arī, kad nav atkļūdotāja rīks?

Ja jūs nodarbajoties ar programmatūras izstrādi kadam mikrokontrolierim, var gadīties, ka daudzi rīki nav pieejami. Tādā situācijā mums jāpielieto dažādi triki. Diezgan bieži tāda tipa sistēmās mēs debug ziņas sūtām pa kādu komunikācijas ceļu (seriālā, CAN), lai redzētu vērtību un tad uz sava datora to uztveram. Kā arī, reizēm mūsu iegultajām sistēmām ir displejs, kur var vienkārši izprintēt visas vajadzīgās vertības. Piemēram, varam uztaisīt kādu elementu, kas darbosies kā izvades lauks izstrādātājiem.

PALĪGĀ, mana lietotne jau ir pie klienta! Ko darīt?

Tikai saglabājiet mieru. Šī arī ir viena no problēmām, kas jau ir atrisināta. Pat ja lietotne jau ir pie klienta un strādājoša, mēs tik un tā varam no tās dabūt informāciju. To var izdarīt, izmantojot “loggus” (pierakstus). Attiecīgi mēs kādā failā (piemēram, .txt) saglabājam informāciju par mūsu programmas darbību. Protams, šajā situācijā mums pašiem būs jāraksta klases un metodes, kā arī manuāli jāizsauc funkciju, kas raksta. Parasti izvada datumu, laiku, kā arī kādu informāciju. Pēc tam Jūs varat palūgt, lai klients šo failu atsūta.

Nobeigums

Kā redzat, daudzas problēmas jau ir atrisinātas, kā arī izstrādāji jau no laika gala domā kā uzlabot programmas, kā panākt to, ka problēmas tiek atrastas ātrāk utt. Galvenais ir praktizēties un šos rīkus/metodes iemācīties lietot.

* Autors – Rīgas Programmēšanas skolas pasniedzējs Mārtiņš Leitarts.

* Autora citus rakstus var lasīt: http://techbear.org/ 

KAS NOTIEK MŪSU SKOLĀ?

Reģistrācija
Kontakti