A hibakeresés a számítógépes program fejlesztésének egy szakasza, amelyben a hibákat észlelik, lokalizálják és kiküszöbölik. A hiba okának megértéséhez a következőket kell tennie:
Két egymást kiegészítő hibakeresési technológia létezik:
Egy tipikus fejlesztési ciklus, amely egy program élete során sokszor megismétlődik, valahogy így néz ki:
A hibakeresés gyakran magas szakértelmet és jelentős erőforrásokat igényel. A programozó hibakeresési képessége fontos tényező a probléma forrásának megtalálásában, de a hibakeresés nehézsége nagymértékben függ a programozási nyelvtől és a használt eszközöktől, különösen a hibakeresőktől .
A debugger egy olyan szoftvereszköz, amely lehetővé teszi a programozó számára, hogy megfigyelje a vizsgált program végrehajtását, leállítsa és újraindítsa, lassítva futtassa, módosítsa a memóriában lévő értékeket, sőt bizonyos esetekben vissza is léphessen az időben.
Szintén hasznos eszközök lehetnek a programozó kezében:
A magas szintű programozási nyelvek használata általában megkönnyíti a hibakeresést, ha az ilyen nyelvek tartalmaznak például kivételkezelési lehetőségeket, amelyek megkönnyítik a probléma forrásának megtalálását. Alacsony szintű nyelveken a hibák olyan finom problémákhoz vezethetnek, mint a memória sérülése és memóriaszivárgás . Ezután meglehetősen nehéz lehet megállapítani, hogy mi volt a hiba eredeti oka. Ezekben az esetekben összetett technikákra és hibakereső eszközökre lehet szükség.
„Személyes döntésünk az, hogy ne használjunk hibakeresőket, kivéve a hívási verem vagy néhány változó értékének megtekintését . Ennek egyik oka, hogy nagyon könnyen el lehet veszni a bonyolult adatstruktúrák és programvégrehajtási utak részleteiben. A programon való átlépést kevésbé produktívnak találjuk, mint a kemény gondolkodást és a kódellenőrzést a kritikus pontokon.
Az operátorokra való kattintás több időt vesz igénybe, mint az operátorok kritikus pontokon elhelyezett hibakeresési információit kibocsátó üzeneteinek megtekintése. Gyorsabb eldönteni, hogy hova helyezzük el a hibakeresési utasítást, mint végiglépni a kód kritikus szakaszain, még akkor is, ha tudjuk, hol vannak ezek a szakaszok. Ennél is fontosabb, hogy a hibakeresési utasítások megmaradnak a programban, és a hibakereső munkamenetek átmenetiek.
A hibakeresőben való vak vándorlás nagy valószínűséggel terméketlen. Hasznosabb egy hibakereső segítségével kideríteni a program állapotát, amelyben hibát követ el, majd gondolja át, hogyan fordulhat elő ilyen állapot. A hibakeresők bonyolult és zavaró programok lehetnek, különösen a kezdők számára, akik számára inkább zavarba ejtőek, mint hasznosak... "
„A hibakeresés nehéz, és beláthatatlanul sokáig tarthat, ezért a cél az, hogy a legtöbbet megkerüljük. A hibakeresési időt csökkentő technikák közé tartozik a jó tervezés, a jó stílus , a határfeltételek ellenőrzése, a kezdeti állítások és a kód ésszerűségének validálása, a védekező programozás , a jól megtervezett interfészek, a globális változók korlátozott használata, az automatikus vezérlések és ellenőrzések. Egy csepp megelőzés is megér egy csomó gyógymódot."
- Brian Kernighan és Rob PikeEgy másik irány, hogy minél ritkább legyen a hibakeresés. Erre érvényes:
A programkódban előfordulhat úgynevezett dokumentálatlan viselkedés - súlyos hibák, amelyek nem jelennek meg a normál programvégrehajtás során, de célzott támadás esetén nagyon veszélyesek az egész rendszer biztonságára. Leggyakrabban ez a programozói hibák eredménye. A leghíresebb példák az SQL injekció és a puffertúlcsordulás . Ebben az esetben a hibakeresés feladata:
Vannak ilyen módszerek:
![]() | |
---|---|
Bibliográfiai katalógusokban |