Debugger (debuger) służy do analizy wykonywanego programu, czyli pracy z programem w trakcie jego działania. Typowe funkcje debuggera to m.in. uruchamianie aplikacji w trybie debug, ustawianie punktów przerwania (breakpoint), wykonywanie krokowe (step/next), podgląd i modyfikacja wartości zmiennych, analiza stosu wywołań oraz obserwacja wyjątków. Dzięki temu można zlokalizować źródło błędu (np. miejsce nieprawidłowej logiki, nieoczekiwany stan danych, błąd w przepływie sterowania).
Opcja "interpretacji kodu w wirtualnej maszynie Java" opisuje działanie środowiska uruchomieniowego JVM (wykonywanie bajtkodu), a nie podstawową rolę debuggera. Debugger może współpracować z JVM, ale nie jest to jego definicja.
Opcja "analizy kodu źródłowego w celu odnalezienia błędów składniowych" odnosi się do parsera/kompilatora, lintera albo mechanizmów walidacji składni w IDE. Błędy składni zwykle są wykrywane przed uruchomieniem programu, natomiast debugger jest nastawiony na diagnozę problemów podczas wykonania.
Opcja "tłumaczenia kodu zapisanego językiem wyższego poziomu na język maszynowy" to definicja kompilatora. Kompilator przygotowuje kod do wykonania, a debugger pomaga zrozumieć, co dzieje się podczas działania programu.
Wskazówka egzaminacyjna: gdy w treści pojawia się "lokalizacja błędów podczas działania", myśl o debugowaniu (breakpointy, krokowanie, podgląd zmiennych). Gdy pojawia się "tłumaczenie na kod maszynowy" – to kompilacja, a gdy "błędy składni" – to analiza składni/lint.