Дебъгер

Дебъгер или дебъгър (на английски: debugger) е компютърна програма за проследяване на процеса на изпълнение на компютърни програми (дебъгване). Обикновено целта на такова проследяване е намиране на грешки, които се наричат „бъгове“.

Този тип програми се използва от програмисти за тестване на новосъздадени продукти, за да се предотвратят възможни неизправности в процеса на работа на дадения продукт. Когато програмата се изпълнява в дебъг режим, тя е значително забавена, за да може да се открие моментът на възникването на дадения „бъг“.

Програмна грешка или „бъг“ възниква, когато дадена програма не може да продължи с изпълнението си по нормален начин. Например програмата може да се опитва да използва ресурси, които са забранени или вече не съществуват. Също така е възможно в написания код на дадената програма да има грешка в някой алгоритъм или функция, което ще доведе до „crash“ (на български „счупване“) което е еквивалентно и на „бъг“.

Дебъгване е самият процес на откриване на грешки с една програма в друга. Чрез специални програми, които могат да изпълняват и проверяват в себе си продуктите на софтуерните инженери. Някои дебъгери могат да правят и по-сложни неща, например да изпълняват програмата стъпка по стъпка (Stepping) или да я спрат в даден момент чрез Break Point (брейк пойнт е точка, която се поставя на даден ред в програмния код с цел проследяване на стойностите на дадени променливи).

Други дебъгери имат способността да променят състоянието на програмата, докато е стартирана, което от своя страна се изразява в промяна на някоя от стойностите на участващи променливи в нея и дори на някои функции. По този начин е възможно по-нататъшното изпълнение на програмата и изследване на поведението ѝ с новозададените стойности на променените параметри. Осигурява се и възможност да бъде стартирана програмата на различни места от програмния код, с цел да се избегне срив или логическа грешка, породена от предхождащ код по време на изпълнението ѝ.

Някои дебъгери се характеризират с особеност наречена „обратно дебъгване“, което се отличава от нормалния режим на дебъгване по това, че се извършва в обратен ред на хронологията на изпълнение на дадена програма (отзад напред). Няколко дебъгера включват тази функционалност за езици като C#, Visual Basic .NET, както и някои други езици с изключение на C++. Такива са Visual Studio Ultimate Edition (версия от 2010 нагоре), а за JAVA – gdb ver. 7.0+, както и „Omniscient Debugger“. Дебъгването в обратен хронологичен ред е много удобно за откриването на някои специфични проблеми, но все още не се използва толкова често.

Отдалечен дебъгер Това е дебъгер, който не се пуска на машината, на която работи приложният софтуер, а дебъгването се реализира по компютърна мрежа.

Конзолен Дебъгер

Някои от най-използваните програми за дебъгване са: Intel Debugger (IDB), LLDB, Microsoft Visual Studio Debugger, Valgrind Valgrind, WinDbg WinDbg.