1. Bug

A programozóknak megvan a saját szlengjük, bár sokan szakzsargonnak tartják. Mindenesetre nem kerülheti el a megismerését. Be kell merülnie a részletekbe. Szóval merüljünk bele.

Az egyik első szó, amit megismersz, a „ bogár ”, azaz egy rovar . A szoftverfejlesztéssel összefüggésben ez a szó egy program hibáját jelenti, egy olyan példányt, amikor a program valamit rosszul vagy nem egészen jól csinál. Vagy egyszerűen furcsán működik.

De ha egy programozó úgy gondolja, hogy a program a furcsa viselkedése ellenére pontosan azt csinálja, amit kell, akkor általában kijelenti, hogy "ez nem hiba, hanem szolgáltatás". Ami egy csomó internetes mémet szült.

Általánosságban elmondható, hogy a szoftverhibáknak számos oka lehet: a program logikai hibáitól, az elírásoktól és a helytelen programarchitektúrától kezdve egészen a fordítói problémákig. Mindenesetre a programozóknak ki kell javítaniuk a valós hibákat és a programjaik egyéb "hiányosságait".

A "bug" szó története

A "bug" szó eredetének leggyakoribb változata valami legenda.

1945 szeptemberében a Harvard Egyetem tudósai az egyik első számítógépet, a Mark II-t tesztelték. A számítógép nem működött megfelelően, és az összes kártya ellenőrzése során egy elektromechanikus relé érintkezői közé szorult molylepkét találtak.

A kinyert rovart egy műszaki naplóba ragasztották, amelyhez ez a felirat tartozott: "Első tényleges hiba található."

Úgy gondolják, hogy ez a vicces történet a „ bug ” szó használatának kezdete, amely hibát jelent, a „ debug ” szó pedig a hibák kiküszöbölésének szinonimájává vált.


2. A program hibakeresése

A programhibák kijavításához a programozók speciális programokat, úgynevezett hibakeresőket használnak . Néhány ilyen program még a gépi kód hibakeresését is tudja.

A Java programozók IDE-ket használnak programjaik hibakereséséhez . Ilyen például az IntelliJ IDEA, az Eclipse és a NetBeans. Az IntelliJ IDEA messze a legerősebb IDE, ezért a hibakeresési folyamatot példának vesszük alapul.

Az IntelliJ IDEA két módban tudja futtatni a programot:

Végrehajtási módok Eszköztár ikonra Gyorsbillentyűk
Normális végrehajtás Shift+F10
Indítsa el hibakeresési módban Shift+F9

A normál végrehajtást már ismeri: a program elindul, lefut és kilép. De a hibakeresési mód sok meglepetést tartogat számodra.

Hibakeresési mód

A hibakeresési mód lehetővé teszi, hogy lépésről lépésre végigjárja a teljes programot. Pontosabban, soronként mozoghat . Sőt, a program minden lépésében (a kód minden sorának végrehajtása után) megfigyelheti a változók értékét. És még az értékeiket is megváltoztathatod!

A program hibakeresésének minimális megértéséhez három dolgot kell megtanulnia:

  • Töréspontok
  • Lépésről lépésre történő végrehajtás
  • Változók értékének vizsgálata

3. Töréspontok

Az IDE lehetővé teszi speciális jelölők, úgynevezett töréspontok elhelyezését a kódban. Minden alkalommal, amikor egy hibakeresési módban futó program elér egy törésponttal jelölt sort , a végrehajtás leáll.

Ha egy adott sorra szeretne töréspontot helyezni , csak kattintson a sor bal oldalán az IDEA alkalmazásban. Példa:

Töréspontok IntelliJ ÖTLET

A vonal törésponttal lesz megjelölve, és az IntelliJ IDEA pirossal kiemeli :

törésponttal jelöltük

Egy második egérkattintás a kódtól balra lévő ablaktáblára eltávolítja a töréspontot .

Egy töréspont az aktuális sorban is elhelyezhető egyszerűen a Ctrl+ gyorsbillentyűkombináció használatával F8. Ha ismét megnyomja Ctrla + gombot F8egy olyan soron, amelyen már van töréspont , akkor az törlődik.


4. Indítsa el a programot hibakeresési módban

ShiftHa van legalább egy töréspont a programban, akkor a + gomb megnyomásával F9vagy a "hiba ikonra" kattintva hibakeresési módban futtathatja a programot .

Debug módban való indítás után a program a megszokott módon fut. De amint eléri a törésponttal jelölt kódsort , szünetel. Példa:

Indítsa el a programot hibakeresési módban

A képernyőkép felső felében két törésponttal ellátott programkód látható. A program végrehajtása a kék vonallal jelölt 5. sorban leállt. Az 5. sort még nem hajtották végre: még semmi sem került ki a konzolra.

A képernyő alsó felében a hibakereső ablaktáblák láthatók: a Hibakereső panel, a Konzol  panel és a hibakeresési mód gombjai.

A program szüneteltetését (vagyis a végrehajtás folytatását) a bal alsó panelen található Program folytatásaF9 gomb megnyomásával (vagy a gomb megnyomásával ) feloldhatja .

Indítsa el a programot hibakeresési módban 3

Ha megnyomja ezt a gombot (vagy F9), a program addig fut, amíg meg nem találja a következő töréspontot vagy be nem fejeződik. Íme, amit a gombra kattintás után látunk:

Indítsa el a programot hibakeresési módban 4

A program a második töréspontnál megállt, és a Helloés a szavak andláthatók a konzolon. Ez annak a jele, hogy a képernyőn a kimenetet megjelenítő három sor közül csak kettőt hajtottunk végre.


5. Lépésről lépésre történő végrehajtás

Ha a programod hibakeresési módban fut, akkor át is léphetsz rajta: egy lépés egy sor . Két gyorsbillentyű áll rendelkezésre a lépésről lépésre történő végrehajtáshoz: F7és F8: mindegyik az aktuális kódsor végrehajtását okozza. De először is le kell állítania a programot egy törésponttal .

Ha soronként szeretné végrehajtani a programot, akkor a metódus elejére töréspontotmain() kell tenni , és hibakeresési módban kell futtatnia.

Amikor a program leáll, elkezdhetjük soronként végrehajtani. Egy gombnyomás F8egy sort hajt végre.

Így néz ki a programunk, miután leáll, és F8egyszer megnyomjuk a gombot:

Indítsa el a programot hibakeresési módban.  Lépésről lépésre történő végrehajtás

A fő metódus első sora már végrehajtásra került, az aktuális sor pedig a második sor. A képernyőkép alján azt is láthatja, hogy a szó Hellomár megjelenik a képernyőn.


6. Lépésről lépésre történő végrehajtás metódusokba lépéssel

Ha saját metódusokat írtunk a programba, és azt szeretnénk, hogy a végrehajtás a metódusainkon belül menjen végbe debug módban, azaz „be akar lépni a metódusba”, akkor inkább a gombot kell F7megnyomnia F8.

Tegyük fel, hogy végiglép a programon, és most a 4. sorban áll meg. Ha megnyomja a gombot F8, az IDEA egyszerűen végrehajtja a negyedik sort, és továbblép az ötödikre.

Lépésről lépésre történő végrehajtás a 2. metódusokba lépéssel

De ha megnyomja a gombot F7, az IDEA belép a main2()metódusba:

Lépésről lépésre történő végrehajtás a 3. metódusokba lépéssel

Ez nagyon egyszerű. Ha nem igazán érdekli, hogy mi történik egy metóduson belül vagy hogyan, akkor nyomja meg a gombot F8. Ha fontos, nyomja meg a gombot, F7és léptesse át az összes kódját.