Tegijale juhtub mõndagi ütleb vanasõna ja nii see ongi. Programmeerimisel tehakse ikka mingeid vigu. Osa neist leiab translaator kohe üles. Siia hulka kuuluvad liiga suur või väike hulk parameetreid, vale funktsiooni või muutuja nimi, puuduvad sulud jne. Osa vigu on aga loogilise iseloomuga. Nad ei takista programmi transleerimist ja ei väljasta isegi hoiatust. Näiteks:
int i, j;
...
for(i = 0; j < 5; i++) { /* see tsükkel ei lõppe kunagi */
...
}
Sel juhul tuleks kasutada silurit (debugger). Borland C/C++ sisaldab kahte silurit. Üks neist on osa Borland C/C++ töökeskkonnast (IDE). Enne siluri kasutamist tuleks programm transleerida koos siluri jaoks vajalike andmetega. Selleks tuleb valida menüüst Options | Compiler | Code Generation käsk: Debug info into OBJs. Tavaliselt on see käsk uues projektis juba valitud.
Nüüd võite menüüst Run valitud käskudega programmi startida, teda vajalikus kohas peatada, muutujate väärtusi uurida jne.
Menüü Run käsk Run (<Ctrl>+<F9>) stardib programmi ja kui mingeid katkestuspunkte ei ole määratud, siis täidetakse programm kuni lõpuni (või esimese tõsise veani). Kui programm vajab argumente, siis valige kõigepealt menüü Run käsk Arguments..., sisestage vajalikud argumendid ja startige seejärel programm uuesti.
Menüü Run käsk Go to cursor täidab programmi kuni reani, millel asub kursor ja peatub siis. Sama käsu täidab ka klahv <F4>.
Järgmise programmirea täitmiseks valige menüü Run käsk Step over (või vajutage klahvile <F7>) või Trace into (või vajutage klahvile <F8>). Need käsud erinevad oma mõjult vaid siis, kui järgmisel real mingi funktsioon välja kutsutakse. Sel juhul täidab käsk Step over väljakutsutava funktsiooni otsekohe kuni lõpuni ja peatub sellele järgneval programmireal. Käsk Trace into seevastu peatub väljakutsutava funktsiooni esimesel real ja võimaldab seega jälgida ka tolle funktsiooni käitumist.
Programmi töö peatamiseks valige menüü Run käsk Program reset või vajutage klahvidele <Ctrl>+<F2>.
Programmi peatamiseks mingis kindlas kohas viige kursor sellele reale ja valige menüü Debug käsk Toggle breakpoint või kasutage klahvikombinatsiooni <Ctrl>+<F8>. Nüüd peatub programm alati sellel real. Katkestuspunkti eemaldamiseks viige kursor antud reale ja valige uuesti menüü Debug käsk Toggle breakpoint. Menüü Debug käsk Breakpoints... avab dialoogi, milles saab samuti seada ja eemaldada katkestuspunkte.
Menüü Debug käsk Inspect... toob ekraanile tillukese dialoogi, milles võite sisestada teid huvitava muutuja nime või mingi valemi. Nupule Ok vajutades näidatakse soovitud valemi väärtust. Sama menüü käsk Evaluate/Modify... toob ekraanile dialoogi, milles võite samuti sisestada muutujate nimesid ja valemeid ning ka nende hetkelisi väärtusi muuta.
Menüü Window käsk Watch toob ekraanile tillukese akna, millesse võib sisestada muutujate nimesid ja näha nende väärtusi. Muutuja või valemi sisestamiseks sellesse aknasse vajutage nupule <Ins>. Avanenud dialoogis sisestage soovitud muutuja nimi ja vajutage nupule Ok. Muutuja või valemi eemaldamiseks sellest aknast viige kursor sellele reale ja vajutage klahvile <Del>. Valemi või muutuja nime muutmiseks viige kursor antud reale ja vajutage nupule <Enter>. Avanenud dialoogis muutke nimi ja vajutage nupule Ok. Samu ülesandeid saab täita ka menüü Debug alammenüü Watches käskudega.
Abiprogramm Turbo Debugger võimaldab täita samu ülesandeid ja lisaks sellele:
Silur Turbo Debugger on eraldi programm. Programmeerimiskeskkonna silurit on lihtsam kasutada ja harilikult sellest ka jätkub. Trubo Debugger on tunduvalt võimasam ja suudab rohkem, kuid temas ei saa kohe peale vea leidmist ka programmi teksti antud kohas muuta. Ta võimaldab vaid programmi tööd jälgida. Turbo Debuggeri võite samuti startida käsuga "-" Turbo Debugger programmeerimiskeskkonna vasakpoolseimast menüüst. Kui te alati kasutate programmi töö uurimiseks silurit Turbo Debugger, siis võite menüü Options käsuga Debugger avatud dialoogis määrata siluri tüübiks Standalone. Sel juhul stardivad menüü Debug ja Run vastavad käsud kohe Turbo Debuggeri ja laadivad temasse antud programmi.
Turbo Debugger sarnaneb oma välimuselt üsnagi Programmeerimiskeskkonna siluriga. Ka siin on menüü Run, mille käskudega saab programmi startida, peatada ja reahaaval täita. Vastavad käsud omavad samu nimesid, ainult neile vastavad klahvikombinatsioonid on natuke muutunud. Lisaks juba tuntud käskudele on ilmunud veel käsud Until return, mis täidab hetkelise funktsiooni kuni lõpuni ja peatub seejärel teda väljakutsunud funktsiooni järgmisel real. Käsk Back trace täidab programmi ühe rea võrra tagurpidi. Käsk Execute to... võimaldab sisestada mingi valemi või tingimuse, mida kasutatakse katkestuspunkti seadmiseks. Programmi töö peatatakse, kui see tingimus on tõene.
Katkestuspunktide jaoks on ilmunud menüü Breakpoints. Selle menüü käskudega saab lisaks harilikele katkestuspunktidele määrata ka katkestuspunkte mingi mälubloki jaoks. Niipea, kui programm seda mälu kasutab, peatatakse tema töö (käsk Changed memory global...). Võimalik on määrata ka mingi tingimus, mispuhul programmi töö peatatakse (käsk Expression true global...) ja seada katkestuspunkte protsessori abil (käsk Hardware breakpoint...).
Muutujate ja valemite tulemusi jälgida ja neid aknasse Watches lisada saab menüü Data käskudega.
Menüü View käskudega saab jälgida protsessori registrite, pinu ja andmesegmendi sisu, väljakutsutud funktsioonide järjekorda ja palju muudki.