A programozók egy olyan típusú problémával találkoznak, amikor a program lefordítódik, de a várttól eltérően viselkedik. Megtudhatja, hogyan oldhatja meg az ilyen problémákat a hibakereső segítségével.
Hibakeresés
A hibakeresés a program futásidejű viselkedésének megfigyelése és a szemantikai hibák helyének meghatározása. A hibakeresővel megszakíthatja (felfüggesztheti) a program végrehajtását, hogy megvizsgálhassa a kódját, kiértékelhesse és szerkeszthesse a programban lévő változókat, megtekinthesse az adatbázis-táblák adatait, és ellenőrizheti a forráskódban lévő utasítások végrehajtását.
Ismét változtatni fogsz a “Hello World” nézet kódján, ezúttal úgy, hogy az kissé másképp viselkedjen, mint ahogyan azt szeretnéd. Ezután megtanulod, hogyan használd a hibakeresőt a probléma felkutatására és megoldására.
1. Kattintson duplán a gombvezérlőre a vizuális szerkesztőben vagy a Kódelemzőben a gombobjektum kódjának megjelenítéséhez.
2. Módosítsa a sort
move “Hello, ” to sHello
a címre.
move “Hello,” to sHello
(távolítsa el a vesszőt követő szóközt a “Hello,”-ból).
3. Kattintson a Studio eszköztárának Futtatás gombjára. Amikor az alkalmazás fut, kattintson a Nézet menüre, majd a Hello World menüpontra a nézet megnyitásához.
4. Írja be a nevét a Name formba, majd kattintson a Go gombra.
Látni fogja, hogy az eredmény űrlapon most például a következő szöveg jelenik meg: “Hello,John”, a vessző és a név közötti szóköz hiányzik. Most a hibakeresővel fogod megkeresni, hogy miért hiányzik a szóköz.
5. Hagyja futni a programot, és váltson vissza a Stúdióba. Kattintson a kódszerkesztő bal oldali margóján a kódsor mellé
Get Value of oNameForm to sName

6. Ez egy piros pontot fog elhelyezni a bal margón, ami azt jelzi, hogy épp most helyezett el egy töréspontot ebben a kódsorban.
Töréspontok
A hibakeresők úgy működnek, hogy a végrehajtó programokat megállásra késztetik, és ezen a “befagyasztott” időpontban vizsgálják a programot. A kódsorokon elhelyezett töréspontok hatására a hibakereső megállítja a programot, amikor eléri az adott kódsort, közvetlenül annak végrehajtása előtt.
7. Most a programot addig a kódsorig fogja végrehajtani, hogy a hibakereső ezen a ponton megálljon. Mivel a töréspont a gomb OnClick eseményében van, el kell indítania a programját, és rá kell kattintania a gombra, hogy a debugger végre tudja hajtani a program kódját a töréspontig.
Térjen vissza a futó programhoz, és kattintson ismét a Go gombra.
Ezúttal a programot a debugger a töréspontnál megállítja.
8. Ha az OnClick eljárás bármelyik helyi változója fölé helyezi az egérkurzort, akkor a változó aktuális értéke felugrik egy tool tip formájában. Természetesen a kód ezen pontján minden változónak üresnek kell lennie.

Figyelje meg a bal margón lévő zöld nyilat is, amely jelenleg átfedi az elhelyezett töréspont piros pontját. A zöld nyíl azt a sort jelzi, amelyen a program jelenleg “befagyott”. Ez a következő sor, amely a programban végrehajtásra kerül.
9. Vessen egy pillantást a Locals ablakra. Ha a Locals ablak nincs megnyitva, kattintson a Studio eszköztárában a Local Variables Watch Window (Helyi változók figyelőablak) ikonra.

Ez megnyitja a Locals ablakot, amely felsorolja az összes helyi változót és azok aktuális értékeit. Ezt az ablakot hasznos nyitva tartani hibakeresés közben, mivel tükrözi az összes helyi változó értékét, ahogy a kódon keresztül haladunk.

10. Kattintson a Studio eszköztárának Step Over gombjára (vagy nyomja le az F10 billentyűt).

Lépés a kódon keresztül
A kódon való átlépés fontos hibakeresési koncepció. A lépés hatására a hibakereső azt mondja a hibakeresett programnak, hogy a kódsorokat az Ön utasítása szerint hajtsa végre.
A leggyakoribb lépéstípus a Step Over, amely az aktuális metódusban marad, és végrehajtja az aktuálisan kiválasztott kódsort (a zöld nyíllal jelzett sort).
11. A hibakereső végrehajtotta a sort
Get Value of oNameForm to sName
Vegyük észre, hogy az sName változó most már azt a nevet tartalmazza, amelyet a program beírtunk. Ezt láthatjuk a Locals ablakban, valamint akkor is, ha az egérkurzort az sName változó fölé tartjuk bárhol a Procedure OnClick programban.
12. Kattintson a Step Over eszköztár gombjára.
Vegye észre, hogy az sHello változó most már a “Hello” szót tartalmazza, az sName pedig továbbra is a Name űrlapba beírt nevet.
13. Kattintson a Step Over eszköztár gombra.

Az sHello változó most már a “Hello” szót tartalmazza, az sName a Name űrlapba beírt nevet tartalmazza, az sResult pedig az sHello + sName eredmények összekapcsolását (“Hello,Dennis” a példánkban).
Most már könnyen látható, hogy a hiányzó szóköz oka az, hogy sem az sHello végére, sem az sName elejére nem került szóköz.
Piros értékek a Locals ablakban
Észrevehetjük, hogy az sResult értéke piros színnel jelenik meg a Locals ablakban. Ez egy vizuális jelzés, amely azt jelzi, hogy az sResult értéke épp most változott meg.
14. Vessen egy pillantást a Watches ablakra. Ha a Watches ablak nincs megnyitva, kattintson a Studio eszköztárán a Watches Window ikonra.

Ez megnyitja a Watches ablakot, egy másik hasznos ablakot, amelyet hibakeresés közben érdemes nyitva tartani. A Watches ablakban bármilyen kifejezés megjeleníthető, amelyet hibakeresés közben ki akar értékelni. Próbálja ki így:
- Kattintson duplán az sResult kifejezésre a kódszerkesztőben (ez kijelöli az egész szót). Húzza a Watches ablak Name oszlopába.
Látni fogja, hogy az Érték oszlopban megjelenik az sResult aktuális értéke, ami a mi jelenlegi példánkban a “Hello,Dennis”.

- Jelölje ki a kifejezést (sHello + sName) a kódszerkesztőben (ez az egész szót kijelöli). Húzzuk át a Név oszlopba a Nézetek ablakban.
Látni fogja, hogy az Érték oszlopban megjelenik az (sHello + sName) aktuális értéke, ami a jelenlegi mintánkban “Hello,Dennis” (akárcsak az sResult).

- Kattintson a Watches ablak Name oszlopában annak a sornak a Name oszlopára, amely jelenleg az (sHello + sName) értéket tartalmazza. Ezzel az egész aktuális sort kiemeli. Ha még egyszer rákattint a Name oszlopra, látni fogja, hogy az most már szerkeszthető.
Módosítsa a kifejezést (sHello + ” ” + sName) kifejezésre, és nyomja meg az Enter billentyűt.
Látni fogja, hogy az Érték oszlopban most már az (sHello + ” ” ” + sName) aktuális értéke jelenik meg, ami a jelenlegi példánkban a “Hello, Dennis”.
Javasoljuk, hogy töltsön el egy kis időt hibakereséssel, ez egy nagyon hatékony eszköz, és az itt bemutatott funkciók alig karcolják a felszínét annak, amit tehet. A hibakeresés elsajátítása segít megérteni a DataFlex működését, és jobb programozóvá teszi Önt!
A hibakereséssel kapcsolatos további információkat a Studio súgókönyv Hibakeresés témakörében talál.
A töréspontok kezeléséről bővebben a Töréspontok című témakörben olvashat.
Következő lépés
Az imént megtanulta, hogyan hozhat létre egy Windows-alkalmazást és egy nézetet a DataFlex Studioban, valamint hogyan fordíthatja le és hibakeresheti azokat.
A Windows-alkalmazás súgójának hozzáadásáról a Súgó hozzáadása a Windows-alkalmazásokhoz című fejezetben olvashat.
A webalkalmazások létrehozásának megtanulásához folytassa az Első webalkalmazás létrehozása című részt.