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ə:

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:

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:

Şə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).

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 ikinci dayandırma nöqtəsində dayandı və konsola Salam
və Və
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ım — bir sətir. Addım-addım icra üçün iki isti düymə var: F7
və F8
: 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:

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.

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

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.
GO TO FULL VERSION