Do lokalizacji błędu wykonania (czyli takiego, który ujawnia się dopiero podczas uruchomienia programu) używa się debuggera. Debugger pozwala obserwować działanie programu "od środka" i precyzyjnie ustalić, w którym miejscu i w jakich warunkach pojawia się błąd.
Typowe możliwości debuggera to m.in.:
- ustawianie punktów przerwań (breakpoints), aby zatrzymać program w wybranym miejscu,
- wykonywanie kodu krok po kroku (step over/step into),
- podgląd i śledzenie wartości zmiennych oraz wyrażeń (watch),
- analiza stosu wywołań (call stack), by zobaczyć, z jakiej funkcji wywołano bieżący fragment kodu,
- obsługa wyjątków i sygnalizowanie miejsc, w których program przerywa działanie.
Odpowiedź "kompilator" jest niepoprawna, ponieważ kompilator tłumaczy kod źródłowy na kod wynikowy i wykrywa głównie błędy składniowe lub typów na etapie budowania programu, a nie lokalizuje błędów ujawniających się w trakcie wykonania.
Odpowiedź "edytor" jest niepoprawna, bo edytor służy do tworzenia i modyfikacji tekstu/kodu, może oferować podpowiedzi i formatowanie, ale sam w sobie nie uruchamia programu w trybie diagnostycznym ani nie pozwala śledzić wykonania krok po kroku.
Odpowiedź "konsolidator" nie jest standardowym narzędziem do debugowania w typowym zestawie narzędzi programistycznych. Nawet jeśli kojarzyć ją z procesami łączenia/porządkowania, nie zastępuje to debuggera, którego celem jest obserwacja i analiza pracy programu podczas uruchomienia.
Na egzaminie warto zapamiętać prostą regułę: kompilator buduje program, edytor ułatwia pisanie kodu, a debugger pomaga znaleźć błąd, gdy program działa nieprawidłowo.