Do zlokalizowania instrukcji powodującej błędne działanie programu używa się debuggera. Debugger pozwala obserwować program podczas wykonywania, a nie tylko go przetwarzać.
Typowe możliwości debuggera, które prowadzą do znalezienia błędnej instrukcji:
- wykonywanie krokowe (instrukcja po instrukcji) i sprawdzenie, w którym miejscu pojawia się nieprawidłowy stan,
- punkty przerwania (breakpointy), aby zatrzymać program w podejrzanym fragmencie kodu,
- podgląd zmiennych, rejestrów lub pamięci (zależnie od środowiska),
- analiza stosu wywołań, co ułatwia dojście do źródła błędnego wywołania funkcji/procedury.
Odpowiedź "Debuggerem." jest więc poprawna, bo jako jedyna dotyczy narzędzia przeznaczonego do diagnostyki działania programu w czasie wykonania.
Dlaczego pozostałe odpowiedzi nie pasują:
- "Asemblerem." — asembler służy do tłumaczenia kodu asemblera na kod maszynowy. Nie jest narzędziem, którego podstawowym celem jest wskazanie instrukcji powodującej błąd logiczny lub wykonania.
- "Kompilatorem." — kompilator tłumaczy kod źródłowy na postać wynikową (np. plik wykonywalny). Może zgłaszać błędy składni lub typów, ale nie służy do śledzenia przebiegu programu i wyszukiwania miejsca, w którym program działa nieprawidłowo.
- "Deasemblerem." — deasembler odtwarza postać asemblerową z kodu maszynowego. Jest przydatny w analizie binariów, ale sam w sobie nie zastępuje debuggera w zadaniu "znajdź instrukcję powodującą błędne działanie podczas wykonywania".
W praktyce (także w systemach mechatronicznych) umiejętność użycia debuggera przekłada się na szybsze uruchamianie i serwis: można porównać oczekiwane i rzeczywiste wartości sygnałów/zmiennych oraz potwierdzić, w którym warunku lub instrukcji logika sterowania "skręca" w złą stronę.