CodeGym /Kurslar /JAVA 25 SELF /IDEA-də debug

IDEA-də debug

JAVA 25 SELF
Səviyyə , Dərs
Mövcuddur

1. Bug

Proqramçıların öz slenqi var, baxmayaraq ki, bir çoxları bunu texniki jarqon hesab edir. Hər halda, onunla tanışlıqdan da, ətraflı öyrənməkdən də qaça bilməyəcəksiniz. Odur ki, başlayın alışmağa.

İlk öyrənəcəyiniz sözlərdən biri bug olacaq, ingiliscədən bug (böcək). Bu söz proqramda səhv deməkdir — proqram nəyisə düzgün etmədikdə və ya gözlənildiyi kimi işləmədikdə. Bəzən isə sadəcə qəribə işləyir.

Ancaq əgər proqramçı hesab edirsə ki, proqram qəribə işləsə də, o bunu elə belə də nəzərdə tutub, adətən “bu bug deyil, bu feature-dir” kimi nəsə deyir. Bu da saysız-hesabsız internet memlərinə səbəb olub.

Prinsipcə, səhv işin səbəbi istənilən ola bilər: proqramın məntiqində səhv, yazı səhvləri, proqramın yalnış arxitekturası, hətta kompilyatordakı problemlərə qədər. Hər halda, proqramçılar həm real bug-ları, həm də proqramda olan digər “çatışmazlıqları” düzəltməlidirlər.

“Bug” sözünün tarixi

“Bug” sözünün mənşəyinə dair ən geniş yayılmış versiya belə bir əfsanədir.

1947-ci ilin sentyabrında Harvard Universitetinin alimləri ilk kompüterlərdən birini — Mark II-ni — sınaqdan keçirirdilər. Kompüter işləmir və bütün plataları yoxlayarkən elektromechaniki releyin kontaktları arasında ilişib qalmış bir kəpənəyi tapırlar.

Çıxarılan həşərat skotçla texniki jurnalın içinə yapışdırılır və “bug tapıldı və aradan qaldırıldı” qeydi ilə müşayiət olunur.

Elə bu maraqlı hekayənin səhvi ifadə etmək üçün bug sözünün istifadəsinin başlanğıcı olduğuna, həmçinin debug (sazlama) sözünün səhvlərin aradan qaldırılmasının sinoniminə çevrildiyinə inanılır.


2. Proqramın sazlanması

Proqramlarınızdakı bug-ları aradan qaldırmaq üçün proqramçılar xüsusi sazlayıcı proqramlardan (debugger) istifadə edirlər. Bu proqramların bəziləri hətta maşın kodunu belə sazlamağı bacarır.

Java-proqramçıları proqramlarını sazlamaq (debugging) üçün IDE istifadə edirlər. Məsələn, IntelliJ IDEA, Eclipse və NetBeans. Bu gün üçün IntelliJ IDEA ən güclü IDE-dir, buna görə də sazlama prosesinə onun nümunəsində baxacağıq.

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

Proqramı işə salma rejimləri Paneldəki nişan Qısayol düymələri
Adi icra Shift+F10
Sazlama rejimində işə salma Shift+F9

Adi rejimlə artıq tanışsınız: proqram işə düşür, işləyir və tamamlanır. Sazlama rejimi isə sizin üçün xeyli sürprizlər gətirir.

Sazlama rejimi

Sazlama rejimi proqramınızın hamısını addım-addım icra etməyə imkan verir. Daha doğrusu, sətir-sətir: sətir ardınca. Bu zaman hər addımdan (hər sətir kod icra olunduqdan) sonra dəyişənlərin dəyərlərini müşahidə edə bilərsiniz. Hətta onların dəyərlərini dəyişə də bilərsiniz!

Sazlama sənətinə minimal səviyyədə yiyələnmək üçün üç şeyi öyrənməlisiniz:

  • Dayanma nöqtələri
  • Addım-addım icra
  • Dəyişənlərin dəyərlərinə baxış

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

IDE sizə kodda xüsusi nişanlar — dayanma nöqtələri (break point) — yerləşdirməyə imkan verir. Sazlama rejimində işləyən proqram break point qoyulmuş sətirə çatdıqda hər dəfə pauzaya dayanacaq.

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

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

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

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

Kodun sol panelində təkrar klik etmək qoyulmuş break point-i siləcək.

Həmçinin break point-i cari sətirdə isti düymə kombinasiyası ilə də qoya bilərsiniz — Ctrl+F8. break point olan sətirdə Ctrl+F8-ə təkrar basmaq onu silir.


4. Proqramı sazlama (debug) rejimində işə salma

Əgər proqramınızda ən azı bir dayanma nöqtəsi varsa, proqramı sazlama rejimində işə sala bilərsiniz (Shift+F9 və ya “böcək nişanı”).

Sazlama rejimində işə salındıqdan sonra proqram adi qaydada icra olunur. Lakin break point ilə qeyd olunmuş kod sətrinə çatdığı anda pauzaya dayanır. Nümunə:

Proqramın debug rejimində işə salınması (debug)

Skrinşotun yuxarı yarısında iki dayanma nöqtəsi olan proqram kodunu görürsünüz. Proqram 5-ci sətirdə dayandırılıb — mavi xəttlə işarələnib. 5-ci sətir hələ icra olunmayıb: konsola hələ heç nə çıxarılmayıb.

Ekranın aşağı yarısında sazlama rejimi panellərini görürsünüz: Debugger paneli, Console (ekrana çıxış) paneli və sazlama rejimi üçün düymələr toplusu.

Sol altdakı paneldə Resume Program düyməsini bassanız (və ya F9 düyməsinə bassanız), proqramı pauzadan çıxarıb icranı davam etdirə bilərsiniz.

Proqramın debug rejimində işə salınması (debug) 3

Bu düyməni (F9) bassanız, proqram növbəti dayanma nöqtəsinə çatana qədər və ya tamamlanana qədər işləməyə davam edəcək. Düyməni basdıqdan sonra belə görəcəyik:

Proqramın debug rejimində işə salınması (debug) 4

Proqram ikinci dayanma nöqtəsində dayandı və konsola Salam sözləri çıxarıldı — bu, ekrana çıxışın üç sətirindən yalnız ikisinin icra olunduğunun əlamətidir.


5. Addım-addım icra

Əgər proqramınız sazlama rejimində işləyirsə, onu addım-addım da icra edə bilərsiniz: bir addımbir sətir. Addım-addım icra üçün iki qısayol var: F7F8. Hər ikisi cari kod sətirinin icrasına gətirib çıxarır. Amma əvvəlcə proqramınızı break point vasitəsilə dayandırmalısınız.

Proqramınızı sətir-sətir icra etmək istəyirsinizsə, break point-i main() metodunun lap əvvəlinə qoyun və onu sazlama rejimində işə salın.

Proqram dayandıqda, sətir-sətir icraya başlaya bilərsiniz. F8-ə bir dəfə basmaq — bir sətir.

Dayandıqdan və F8 düyməsinə bir dəfə basdıqdan sonra proqramımız belə görünəcək:

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

main metodunun birinci sətri artıq icra olunub və cari sətir — ikinci sətirdir. Skrinşotun aşağı hissəsində artıq ekrana Salam sözünün çıxarıldığını da görürsünüz.


6. Addım-addım icra: metodların içinə daxil olaraq

Əgər proqramınızda öz metodlarınız varsa və sazlama rejimində proqramınızın təkcə addım-addım icra olunmasını deyil, həm də metodlarınızın içinə daxil olmasını istəyirsinizsə, “metoda daxil olmaq” üçün F8 deyil, F7 düyməsini basmalısınız.

Tutaq ki, proqramı addım-addım icra edirsiniz və hazırda 4-cü sətirdəsiniz. F8 düyməsini bassanız, IDEA sadəcə dördüncü sətiri icra edəcək və beşinciyə keçəcək.

Metodların içərisinə daxil olaraq addım-addım icra

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

Metodların içərisinə daxil olaraq addım-addım icra 2

Hər şey çox sadədir. Əgər metodun içində nə baş verdiyi sizin üçün o qədər də vacib deyilsə, F8 basın; vacibdirsə — F7 basın və onun bütün kodunu addım-addım icra edin.

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