IDEA'da Debug

All lectures for UZ purposes
Daraja, Dars
Mavjud

1. Bug

Dasturchilar o'zining maxsus slengi bor, garchi ko'pchilik buni texnik jargon deb hisoblaydi. Har qanday holatda ham siz undan qochib qutula olmaysiz, u bilan tanishish va chuqur o'rganish muhimdir. Shuning uchun kirishing.

Siz tanishadigan birinchi so'zlardan biri bug so'zi bo'ladi, bu ingliz tilidan bug (hasharot) dan keladi. Bu so'z dasturdagi xatoni, ya'ni dastur noto'g'ri yoki g'alati ishlaganda ifodalaydi.

Dasturchi dastur g'alati ishlayotganiga qaramay, shunday rejalashtirilgan deb hisoblaganda, odatda "bu bug emas, bu feature" deb aytadi. Bu ko'plab internet memlarini tug'dirdi.

Xatolik sababli noto'g'ri ishlashi har qanday sabab bo'lishi mumkin: dastur mantiqidagi xato, yozuv xatolari, noto'g'ri dastur arxitekturasi, hatto kompilator muammosigacha. Har qanday holatda dasturchilar haqiqiy buglar va dasturdagi boshqa "kamchiliklar"ni tuzatishlari kerak.

Bug so'zining tarixi

Bug so'zining kelib chiqishi haqida eng keng tarqalgan versiya quyidagi afsona.

1947 yil sentyabr oyida Garvard Universiteti olimlari Mark II kompyuterini sinovdan o'tkazishgan. Kompyuter ishlamagan va barcha lavhalarni tekshirishda elektromexanik relye kontaktlari orasida qotib qolgan kapalakni topishgan.

Topilgan hasharot texnik kundalikda lentaga yopishtirilgan va "bug topildi va bartaraf etildi" deb yozilgan yozuv bilan birga qolgan.

Aynan shu qiziqarli voqea "bug" so'zi xato ma'nosida ishlatilishining boshlanishiga sabab bo'lgan va "debug" (debag) so'zi xatolarni bartaraf etish ma'nosida sinonim bo'lib qolgan deb hisoblanadi.


2. Dastur ta'minoti

Dasturlaridagi baglarni bartaraf etish uchun dasturchilar maxsus dastur ta'minotchilar (debugger) dan foydalanadilar. Ushbu dasturlardan ba'zilari hatto mashina kodlarini to'g'rilashni ham biladi.

Java dasturchilari o'z dasturlarini debugging qilish uchun IDE'dan foydalanadilar. Masalan, Intellij IDEA, Eclipse va Net Beans. Hozirda Intellij IDEA eng kuchli IDE hisoblanadi, shuning uchun debugging jarayonini uning misolida ko'rib chiqamiz.

Intellij IDEA dasturingizni ikki rejimda ishga tushirishi mumkin:

Dastur rejimlari Paneldagi ikonka Qisqa tugmalar
Oddiy bajarish Shift+F10
Debug rejimida ishga tushirish Shift+F9

Oddiy rejimda ishlashni siz allaqachon bilasiz: dastur ishga tushadi, ishlaydi va tamom bo'ladi. Biroq, debugging rejimi sizga ko'p qiziqarli imkoniyatlarni beradi.

Debug rejimi

Debug rejimi dasturingizning har bir qatorini bosqichma-bosqich bajarishga imkon beradi. Siz har bir kod qatorini bajarilgandan so'ng dastlabki va keyingi qiymatlarni ko'rishingiz va hatto ularni o'zgartirishingiz mumkin!

Dastur debugging san'atini minimal darajada egallash uchun uch narsani o'rganishingiz kerak:

  • To'xtash nuqtalari
  • Bosqichma-bosqich bajarish
  • O'zgaruvchilar qiymatini ko'rish

3. To'xtash nuqtalari (Break Points)

IDE sizga kodda maxsus belgilar - to'xtash nuqtalari (break point) joylashtirish imkonini beradi. Debug rejimida ishga tushirilgan dastur break point bilan belgilangan qatorga kelganda to'xtaydi.

IDEAda ma'lum bir qatorga break point qo'yish uchun shunchaki chap tarafdagi panelga bosishingiz kerak. Masalan:

To'xtash nuqtalari (Break Points)

Natijada qator break point bilan belgilanadi va Intellij IDEA uni qizil rangda yoritib qo'yadi:

To'xtash nuqtalari (Break Points) 2

Chap tarafdagi panelda kod yonidagi belgi ustiga yana bir marta bosish qo'yilgan break pointni o'chiradi.

Shuningdek, break pointni mavjud qatorga Ctrl+F8 qisqa tugmalari orqali qo'yish mumkin. Ctrl+F8ni takroran bosish break pointni o'chiradi.


4. Dastur debugging rejimida ishga tushirish

Agar dasturingizda kamida bitta to'xtash nuqtasi mavjud bo'lsa, uni debugging rejimida ishga tushirishingiz mumkin (Shift+F9 yoki "hasharot belgisi" ikonka).

Debugging rejimida ishga tushirilgandan so'ng, dastur odatdagidek ishlaydi. Ammo break point bilan belgilanmagan biror qatorga kelganda to'xtaydi. Misol:

Dastur debugging rejimida ishga tushirish

Yuqori qismida siz kodni ikki to'xtash nuqtasi bilan ko'rasiz. Dastur 5-qatorga yetib kelib muzlatilgan — ko'k chiziq bilan belgilangan. 5-qator hali bajarilmadi: konsolda hali hech narsa ko'rsatilmagan.

Quyi qismida debugging rejimi panellarini ko'rasiz: Debugger paneli, Console paneli (ekranga chiqarish) va debugging rejimi uchun tugmalar komplekti.

Dasturingizni pauzadan olib tashlashingiz mumkin (uning bajarilishini davom ettirish uchun), agar chap pastdan Resume Program tugmasini bossangiz (yoki F9 tugmasini bossangiz).

Dastur debugging rejimida ishga tushirish 3

Agar bunday tugmani bossangiz (yoki F9ni), dastur keyingi to'xtash nuqtasiyoki tamom bo'lishigacha ishlaydi. Bunday tugmani bossangiz ko'rgan narsangiz:

Dastur debugging rejimida ishga tushirish 4

Dastur ikkinchi to'xtash nuqtasida to'xtadi va konsolga Salom va Va so'zlari chiqarildi – bu uch qatorlik ekranga chiqarishdan faqat ikkitasining bajarilganini bildiradi.


5. Bosqichma-bosqich bajarish

Agar dasturingiz debugging rejimida ishlayotgan bo'lsa, siz uni bosqichma-bosqich bajarishingiz mumkin: bitta qadam — bitta qator. Bosqichma-bosqich bajarish uchun ikkita qisqa tugma mavjud: F7 va F8: ularning har biri joriy kod qatorini bajaradi. Ammo dastlab dasturingizni break point bilan to'xtatishingiz kerak bo'ladi.

Agar dasturingizni qator-qator bajarishni xohlasangiz, break pointni main() metodining boshida qo'ying va uni debugging rejimida ishga tushiring.

Dastur to'xtaganda, uni qator-qator bajarishni boshlashingiz mumkin. F8 kalitini bitta bosish — bitta qator.

Dasturimiz to'xtatilgan va bir marta F8 bosilgandan keyin qanday ko'rinishda ekanligini ko'ring:

Dastur debugging rejimida ishga tushirish.Bosqichma-bosqich bajarish

main metodiining birinchi qatori bajarildi, va hozirgi qator ikkinchi. Skrinshotning pastki qismida ko'rasiz, ekranga Salom so'zi allaqachon chiqarildi.


6. Bosqichma-bosqich bajarish metodlarga kirish bilan

Agar dasturingizda o'z metodlaringiz bo'lsa va debugging rejimida dasturingiz nafaqat bosqichma-bosqich bajarilishiga qo'shimcha ravishda metodlarga kirib borishni xohlasangiz, "metodga kirish" uchun F7 kalitini bosishingiz kerak.

Faraz qiling, siz dasturning 4-qatorida to'xtadingiz. Agar F8 tugmani bossangiz, IDEA oddiygina to'rtinchi qatorni bajaradi va beshinchiga o'tadi.

Bosqichma-bosqich bajarish metodlarga kirish bilan

Agar F7 ni bossangiz, IDEA main2() metodini qadam-qadam bajaradi:

Bosqichma-bosqich bajarish metodlarga kirish bilan 2

Hammasi juda oddiy. Agar metod ichida nima va qanday ekanligi siz uchun qiziq bo'lmasa, F8 ni bosasiz, agar muhim bo'lsa, F7 va uning barcha kodini qadam-qadam bajarib o'rasiz.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION