Ugrás a fő tartalomra

SqlDeveloper debug (hibakeresés)








SQL -en túl van a Pl-Sql melyet nem csak megírni kell, hanem tesztelni is kell és hibakeresési tevékenységet is igényel(-het).


A hibakereséshez jog is kell:

 - DEBUG CONNECT SESSION

 - DEBUG ANY PROCEDURE



USE DBMS_DEBUG beállítás 




Lépések

- Kikeressük a sémából az szükséges procedúrát, függvényt, triggert

- Megnyitjuk az adott procedúrát, függvényt, triggert (egyszer rákattintunk)

- Begin-End közötti sorokban teszünk egy Breakpoint -ot

- Az adott procedúrát, függvényt, triggert kompiláljuk debugra ( Compile for Debug )



- A katicabogár ikonra rákattintva megadjuk az adott procedúra, függvény, trigger paramétereit (ha szükséges azokat megadni), majd az OK gombra rányomva elindítjuk a debugolást.



Fontos megjegyzés: 

A debug során a sémánk nem fog módosulni! A megjelenített Debug PL/SQL ablakban ha lejjebb görgetünk akkor látni fogjuk, hogy a PL/SQL blokk végén van egy rollback utasítás, ami gondoskodni fog arról, hogy a sémánkban valóban ne történjék változás.

A fenti két navigálási menün keresztül tudunk majd lépegetni a debug során:

- Stop ikon, amivel leállíthatjuk a debugolási folyamatot

- Step Over ikon, amivel ugrunk a következő utasítás sorhoz (Gyorsbillentyű : F8)

- Step Into ikon, ami által beléphetünk más procedúrába, függvénybe. Az ennek feltétele, hogy az adott procedúra / függvény, amibe be szeretnénk lépni azok legyenek kompilálva debugolásra (Gyorsbillentyű : F7)

- Step Out ikon, ami által kiléphetünk a jelenlegi procedúrából / függvényből (Gyorsbillentyű : Shift + F7)

- Resume ikon, ami által az adott folyamat tovább fog futni és a legközelebbi töréspontnál (Breakpoint-nál) fog blokkolódni (Gyorsbillentyű : F9)


Breakpoints-nál tudjuk megnézni, hogy adott felhasználóknak melyik nevű procedúrájában / függvényében / triggerjében hányadik során vannak elhelyezve breakpointok , illetve itt látható, hogy mely breakpointok lettek aktiválva és melyek nem.


A futás során a változó értékek alakulása látható, ha az adott változó nevére rávisszük az egeret, akkor a debuger meg fogja jeleníteni annak a változónak az adatait egy kisebb ablakban (nevezetesen annak nevét, értékét és típusát).


A debug során a dbms_output.put_line(…) eredménye a Debugging:IdeConnections… ablakban fog megjelenni, de csakis miután a debug folyamat véget ért.



BONYOLULTABB PL/SQL PROGRAMOK DEBUGOLÁS LÉPÉSEK

1. Kikeressük a sémából azt a PL/SQL programot ( legyen az procedúra vagy függvény attól függően, hogy melyikben van több procedúra / függvény hívás )

2. Kompiláljuk azt debugra ( Compile for Debug )

3. Elhelyezzük a Begin-End közötti sorokban breakpointot

4. Azokat a procedúrákat / függvényeket , amelyekbe be szeretnénk lépni ( Step Into által ) a debug során azokat is ki kell keresni egyenként a sémából és külön azokat is kompilálni debugolásra ( azokra is végrehajtani egy Compile for Debug-ot ) , mert anélkül nem fogunk tudni belépni a debug során azokba a procedúrákba / függvényekbe, függetlenül attól, hogy megnyomtuk a Step Into ikont!

5. Miután külön lekompiláltuk debugra azokat a procedúrákat / függvényeket is, amelyekbe be szeretnék majd lépni a debug során, akkor nem maradt más hátra , mint megnyomjuk a ikont, megadjuk az adott PL/SQL program paramétereit (ha szükséges azokat megadni), majd végül az OK gomb által elindítjuk azt debugolásra.


Fontos:

Abban az esetben, ha én akarok debugolni egy bonyolultabb PL/SQL programot úgy, hogy belépjek bizonyos procedúrákba, függvényekbe a Step Into által, akkor meg kell győződjek először, hogy azok a procedúrák, függvények le vannak-e kompilálva debugolásra vagy sem.

Megjegyzések