Dlaczego tak
Kompilator analizuje kod źródłowy i tłumaczy go na kod wynikowy, a przy tym zgłasza błędy składniowe i niezgodności typów — zanim program w ogóle się uruchomi. Debugger działa na uruchomionym programie: zatrzymuje go w punktach przerwania, pozwala wykonywać instrukcje krok po kroku i podglądać wartości zmiennych. Dlatego błędy logiczne, których kompilator nie widzi, wyszukuje się właśnie debuggerem.