Debugger to narzędzie programowe, którego zadaniem jest:
Źle. To zadanie konsolidatora (linkera).
Źle. Błędy składni wyłapuje kompilator/interpreter, jeszcze przed uruchomieniem.
Dobrze. Debugger pozwala śledzić wykonanie i podejrzeć stan programu w trakcie pracy.
Źle. Instalacją zajmuje się instalator, nie debugger.
Debugger służy do dynamicznej analizy działającego programu - pomaga znaleźć przyczyny błędów logicznych, które ujawniają się dopiero podczas wykonania. Pozwala zatrzymać program w wybranym miejscu (punkt wstrzymania - breakpoint), wykonywać kod krok po kroku, podglądać wartości zmiennych i prześledzić, którędy „idzie” sterowanie. W praktyce korzysta się z debuggera wbudowanego w IDE (np. w przeglądarce dla JavaScriptu) albo narzędzia takiego jak gdb. To odróżnia go od kompilatora, który wyłapuje błędy składni przed startem. Dlatego zadaniem debuggera jest analiza uruchomionego programu w celu wykrycia przyczyn jego nieprawidłowego działania.
Pozostałe odpowiedzi opisują inne narzędzia. Instalowanie środowiska programistycznego to zadanie instalatora, a nie debuggera. Wykrywanie błędów składniowych w kodzie źródłowym należy do kompilatora lub interpretera - wychwytują je, zanim program w ogóle ruszy, podczas gdy debugger pracuje na już działającym programie. Łączenie plików bibliotek i przetworzonego kodu w plik wykonywalny realizuje konsolidator (linker) na etapie budowania. Debugger natomiast wkracza w fazie uruchomienia, by zbadać, dlaczego program zachowuje się niepoprawnie - dlatego to ta odpowiedź jest właściwa.