Debugger to narzędzie programistyczne służące do wyszukiwania i analizowania błędów w kodzie podczas uruchomienia programu. Jego celem jest ułatwienie zrozumienia, co dzieje się w aplikacji "w środku" w czasie wykonywania instrukcji.
W praktyce debugger pozwala m.in.:
- ustawić punkt przerwania (breakpoint) i zatrzymać wykonanie w konkretnym miejscu,
- wykonać program krokowo (step over/step into),
- podejrzeć wartości zmiennych i parametrów,
- przeanalizować stos wywołań (call stack) i przebieg programu.
Dlatego odpowiedź "wyszukiwania błędów w kodzie programu." jest trafna: opisuje podstawową i najbardziej charakterystyczną funkcję debuggera.
Pozostałe propozycje odnoszą się do innych klas narzędzi lub innych celów pracy:
- "sprawdzania szybkości programu." dotyczy testów wydajności, profilowania i benchmarków; to nie jest główna rola debuggera.
- "badania właściwości programu." jest zbyt ogólne i nie wskazuje na kluczową funkcję debugowania; właściwości bada się też testami, analizą statyczną czy profilowaniem.
- "zoptymalizowania pamięci używanej przez aplikację." wskazuje na optymalizację i profilowanie pamięci. Debugger może pomóc pośrednio w analizie problemu, ale samo optymalizowanie pamięci nie jest jego podstawowym zadaniem.
Na egzaminie warto kojarzyć debugger z czynnościami: breakpoint, krokowanie, podgląd zmiennych oraz szukanie przyczyny błędu, a nie z pomiarem szybkości czy optymalizacją zasobów.