CodeGym /Kurslar /Java SELF AZ /Debug IDEA-da

Debug IDEA-da

Java SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Bug

Proqramçılar özlərinə məxsus jarqona sahibdirlər, baxmayaraq ki, bir çoxları bunun texniki jargon olduğunu düşünür. Hər halda, bununla tanış olmaqdan və hərtərəfli öyrənməkdən qaçış yoxdur. Odur ki, başlayın öyrənməyə.

Tanış olacağınız ilk sözlərdən biri bug olacaq, ingilis dilindəki bug (həşərat) sözündən gəlir. Bu söz proqramdakı səhv, proqramın nəyisə düzgün etməməsini və ya səhv işləməsini bildirir. Və ya sadəcə qəribə işləməyi deməkdir.

Amma əgər proqramçı proqramın qəribə işləməsini elə də düşündüyünü bildirirsə, adətən “bu bug deyil, bu xüsusiyyətdir” kimi bir şey deyir. Bu da bir çox internet memlərinin yaranmasına səbəb olub.

Əslində isə proqramın səhv işləməsinin səbəbi hər şey ola bilər: proqramın loqikasında səhv, yazılma səhvləri, proqramın səhv arxitekturası, hətta kompilyatorla bağlı problemlər. Hər halda, proqramçılar həm əsl bugları, həm də proqramda olan hər hansı digər “çatışmazlıqları” düzəltməlidirlər.

Bug sözünün tarixi

Bug sözünün mənşəyi haqqında ən çox yayılmış versiyalardan biri belə bir əfsanəyə əsaslanır.

1947-ci ilin sentyabrında Harvard Universitetinin alimləri Mark II adlanan ilk kompüterlərdən birini test edirdilər. Kompüter işləmirdi və bütün plataları yoxlama prosesi zamanı onlar bir həşəratın elektromexaniki relyef kontaktlarının arasında ilişib qaldığını tapdılar.

Tapılan böcək bir lentlə texniki gündəliyə yapışdırıldı və yanında “bug tapıldı və aradan qaldırıldı” yazılıb.

Deyilir ki, məhz bu maraqlı hadisə bug sözünün səhvləri ifadə etməyə başlamasına səbəb olub, və debug sözü (debugging) isə səhvlərin aradan qaldırılmasının sinonimi olub.


2. Proqramın debug edilməsi

Proqramınızdakı bağları aradan qaldırmaq üçün proqramçılar xüsusi debug proqramlarından (debugger) istifadə edirlər. Bu proqramlardan bəziləri hətta maşın kodunu debug edə bilir.

Java-proqramçılar öz proqramlarını debug etmək (debugging) üçün IDE-dən istifadə edirlər. Məsələn, Intellij IDEA, Eclipse və ya Net Beans. Bu gündə IntelliJ IDEA ən güclü IDE olaraq tanınır. Ona görə də biz debug prosesini onun nümunəsində araşdıracağıq.

Intellij IDEA proqramınızı iki rejimdə işə sala bilər:

Proqramın işə salınma rejimləri Paneldəki ikonka Qısa klavişlər
Adi icra Shift+F10
Debug rejimində işə salınma Shift+F9

Adi rejimlə artıq tanışsınız: proqram işə düşəcək, işləyəcək və bitəcək. Amma debug rejimi sizi çox şeylə təəccübləndirəcək.

Debug rejimi

Debug rejimi proqramınızı addım-addım icra etməyə imkan verir. Və ya daha düzgün desək, sətir-sətir: bir sətir, bir nəticə. Bu zaman proqramın hər bir addımında (hər bir kod sətiri icra edildikdən sonra) dəyişənlərin qiymətlərini müşahidə edə bilərsiniz. Hətta onların qiymətlərini dəyişdirə bilərsiniz!

Proqram debug sənətini minimal səviyyədə mənimsəmək üçün üç şeyi öyrənməlisiniz:

  • Breakpoints (dayanma nöqtələri)
  • Addım-addım icra
  • Dəyişənlərin qiymətlərinə baxış

3. Dayanacaq nöqtələri (Break Points)

IDE sizə kodda xüsusi nişanlar — dayanacaq nöqtələri (break point) yerləşdirməyə imkan verir. Debug rejimində işə salınan proqram break point ilə qeyd edilmiş sətirə çatanda pauzaya düşəcək.

Müəyyən sətirdə break point qoymaq üçün sadəcə IDEA-da həmin sətirin soluna klikləmək kifayətdir. Nümunə:

Dayanacaq nöqtələri (Break Points)

Nəticədə, bu sətir dayanacaq nöqtəsi (break point) ilə qeyd olunacaq və Intellij IDEA onu qırmızı rənglə vurğulayacaq:

Dayanacaq nöqtələri (Break Points) 2

Kodun sol tərəfindəki paneldə siçanın ikinci klikində həmin break point silinir.

Eyni zamanda, hazırda olduğunuz sətirdə break point qoymaq üçün isti düymələr kombinasiyasından istifadə edə bilərsiniz — Ctrl+F8. Artıq break point olan sətirdə Ctrl+F8 düymələrinə təkrar basmaq onu silir.


4. Proqramı Debug rejimində işə salmaq

Əgər proqramınızda ən azı bir dayandırma nöqtəsi varsa, proqramı debug rejimində işə sala bilərsiniz (Shift+F9 və ya "böcək simvolu" ilə).

Debug rejimi ilə işə saldıqdan sonra proqram adi qaydada işləyir. Amma kodun müəyyən bir break point ilə işarələnmiş sətrinə çatdıqda, dayandırılır. Məsələn:

Proqramı Debug rejimində işə salmaq

Şəklin yuxarı hissəsində iki dayandırma nöqtəsi olan proqram kodunu görürsünüz. Proqram 5-ci sətirdə dayandırıldı — mavi xəttlə işarələnmişdir. 5-ci sətir hələ icra olunmayıb: konsola hələ heç bir şey çıxarılmayıb.

Ekranın aşağı hissəsində debug rejiminin panellərini görürsünüz: Debugger paneli, Console (ekrana çıxış) paneli və debug rejimi üçün düymələr dəsti.

Proqramınızı dayandırmadan çıxara bilərsiniz (icrasını davam etdirə bilərsiniz), əgər sol aşağıdakı paneldə Resume Program düyməsini sıxsanız (və ya F9 düyməsinə bassanız).

Proqramı Debug rejimində işə salmaq 3

Bu düyməni sıxsanız (və ya F9 düyməsinə bassanız), proqram çalışmağa davam edəcək, növbəti dayandırma nöqtəsi ilə qarşılaşana qədər və ya icrasını bitirənədək. Aşağıdakı şəkildə belə düyməni sıxdıqdan sonra görünüşü görəcəksiniz:

Proqramı Debug rejimində işə salmaq 4

Proqram ikinci dayandırma nöqtəsində dayandı və konsola Salam sözləri çıxdı — bu, ekran çıxışının üç sətrindən yalnız ikisinin icra edildiyini göstərir.


5. Addım-addım icra

Əgər proqramınız debug rejimində işləyirsə, siz onu addım-addım icra edə bilərsiniz: bir adımbir sətir. Addım-addım icra üçün iki isti düymə var: F7F8: hər biri kodun cari sətrini icra edir. Amma əvvəlcə proqramınızı break point ilə dayandırmalısınız.

Proqramınızı sətir-sətir icra etmək istəyirsinizsə, break pointni main() metodunun başlanğıcına qoyun və onu debug rejimində işə salın.

Proqram dayandıqdan sonra siz sətir-sətir icra etməyə başlaya biləcəksiniz. Bir F8 düyməsinə basmaq – bir sətir.

Proqramımızın dayandıqdan və bir dəfə F8 düyməsinə basıldıqdan sonra necə görünəcəyini buradan görə bilərsiniz:

Proqramın debug rejimində işə salınması. Addım-addım icra

main metodunun ilk sətri artıq icra olunub, və cari sətir — ikinci. Həmçinin ekranın aşağı hissəsində artıq Salam sözünün çıxarıldığını görə bilərsiniz.


6. Addım-addım icra etmə və metodlara daxil olma

Əgər proqramınızda öz metodlarınız varsa və debugging rejimində proqramınızın sadəcə addım-addım icra olunmasını yox, həm də metodlarınızın içərisinə daxil olmasını istəyirsinizsə, "metoda daxil olmaq" üçün F8 düyməsinin əvəzinə F7 düyməsinə basmalı olacaqsınız.

Tutaq ki, siz proqramı addım-addım icra edirsiniz və indi 4-cü sətirdə dayanmısınız. Əgər F8 düyməsinə bassanız, IDEA sadəcə dördüncü sətri icra edəcək və beşinciyə keçəcək.

Addım-addım icra etmə və metodlara daxil olma

Ancaq əgər F7 düyməsini bassanız, IDEA main2() metodunu addım-addım icra edəcək:

Addım-addım icra etmə və metodlara daxil olma 2

Hər şey çox sadədir. Əgər metodun içərisində nə baş verdiyini çox da vacib saymırsınızsa, F8 düyməsinə basırsınız, əgər vacibdirsə, F7 düyməsinə basır və onun bütün kodunu addım-addım icra edirsiniz.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION