Debugowanie w IntelliJ IDEA – Pierwsze kroki dla początkujących

TL;DR: Debugger to narzędzie które pozwala zatrzymać program w trakcie działania i sprawdzić co się dzieje. W IntelliJ IDEA wystarczy kliknąć obok numeru linii, uruchomić w trybie debug i obserwować wartości zmiennych krok po kroku.

Czy zdarzyło Ci się napisać kod, który nie działa tak jak powinien? Program się kompiluje, ale wyniki są nieprawidłowe? Debugger to Twój najlepszy przyjaciel w takich sytuacjach. To narzędzie pozwala „zajrzeć do środka” działającego programu i zobaczyć dokładnie co się dzieje.

Dlaczego debugowanie jest ważne?

Każdy programista popełnia błędy – to normalne. Różnica między początkującym a doświadczonym programistą polega na tym, jak szybko potrafi te błędy znaleźć i naprawić. Debugger to jak RTG dla lekarza – pozwala zobaczyć co się dzieje „w środku”.

Co się nauczysz:

  • Jak ustawić punkt zatrzymania (breakpoint)
  • Jak uruchomić program w trybie debugowania
  • Jak przeglądać wartości zmiennych
  • Jak poruszać się krok po kroku przez kod
  • Jak naprawić typowe błędy dzięki debuggerowi
Wymagania wstępne: Podstawowa znajomość Javy, umiejętność tworzenia prostych programów w IntelliJ IDEA, pojęcie czym są zmienne i metody.

Czym jest debugger?

Debugger – narzędzie które pozwala zatrzymać działający program w określonym miejscu i sprawdzić stan wszystkich zmiennych, obiektów i operacji.
Debugger to jak możliwość zatrzymania czasu podczas oglądania filmu. Możesz zatrzymać film w dowolnym momencie, sprawdzić co robi każdy aktor, przejrzeć scenografię, a potem puszczać dalej klatka po klatce.

Twój pierwszy breakpoint

Breakpoint (punkt zatrzymania) to miejsce w kodzie gdzie chcesz zatrzymać program do debugowania.

Jak ustawić breakpoint:

1. Otwórz swój kod w IntelliJ IDEA
2. Znajdź linię gdzie chcesz zatrzymać program
3. Kliknij w szarym marginesie po lewej stronie numeru linii
4. Pojawi się czerwona kropka – to Twój breakpoint!

public class Calculator {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        int result = a + b; // ← Ustaw breakpoint tutaj
        System.out.println("Wynik: " + result);
    }
}
Pro tip: Usuwanie breakpointa to ponowne kliknięcie w czerwoną kropkę. Możesz też kliknąć prawym przyciskiem na breakpoint i wybrać „Remove Breakpoint”.

Uruchamianie w trybie debug

Teraz gdy masz ustawiony breakpoint, musisz uruchomić program w specjalnym trybie:

1. Zamiast zielonej strzałki „Run”, kliknij zieloną strzałkę z robaczkiem „Debug”
2. Możesz też użyć skrótu klawiszowego: Shift + F9
3. Program uruchomi się i zatrzyma na Twoim breakpoincie

Gdy program zatrzyma się na breakpoincie, zobaczysz że linia z breakpointem jest podświetlona na niebiesko. To oznacza że program jest dokładnie w tym miejscu.

Przeglądanie zmiennych

To najważniejsza część debugowania – możesz zobaczyć wartości wszystkich zmiennych:

Panel Variables:

– Po lewej stronie zobaczysz panel „Variables”
– Wszystkie zmienne w aktualnym zasięgu są tam wylistowane
– Obok każdej zmiennej widzisz jej aktualną wartość

Sprawdzanie wartości na żywo:

– Najedź myszką na dowolną zmienną w kodzie
– Pojawi się tooltip z jej wartością
– To szybki sposób na sprawdzenie konkretnej wartości

public class Example {
    public static void main(String[] args) {
        String name = "Jan";
        int age = 25;
        boolean isStudent = true; // Zatrzymaj tutaj i sprawdź wszystkie zmienne
    }
}
Typowy błąd: Początkujący często zapominają że zmienne mają wartość null lub domyślną przed inicjalizacją. Debugger pozwoli Ci to łatwo wychwycić!

Poruszanie się krok po kroku

Gdy program jest zatrzymany, możesz kontrolować jego wykonanie:

Główne przyciski debuggera:

PrzyciskSkrótCo robi
Step Over (F8)F8Przechodzi do następnej linii
Step Into (F7)F7„Wchodzi” do wywoływanej metody
Step Out (Shift+F8)Shift+F8„Wychodzi” z aktualnej metody
Resume (F9)F9Kontynuuje do następnego breakpointa
Step Over to jak chodzenie po schodach – idziesz na następny stopień.
Step Into to jak wejście do pokoju na tym samym poziomie.
Step Out to jak wyjście z pokoju z powrotem na schody.

Praktyczny przykład debugowania

Spróbujmy znaleźć błąd w tym kodzie:

public class BuggyCalculator {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        int sum = 0;
        
        for (int i = 0; i <= numbers.length; i++) { // ← Breakpoint tutaj
            sum += numbers[i];
        }
        
        System.out.println("Suma: " + sum);
    }
}

Kroki debugowania:

1. Ustaw breakpoint na linii z pętlą for
2. Uruchom w trybie debug (Shift+F9)
3. Obserwuj zmienną i w każdej iteracji
4. Zauważysz że gdy i będzie równe 5, program spróbuje odczytać numbers[5]
5. Ale tablica ma tylko indeksy 0-4!

Pułapka: Błąd w warunku pętli - powinno być i < numbers.length zamiast i <= numbers.length

Najczęstsze błędy które łapie debugger

Typowe problemy dla początkujących:

  • NullPointerException: Zmienna ma wartość null a Ty próbujesz jej użyć
  • ArrayIndexOutOfBoundsException: Próbujesz odczytać element tablicy który nie istnieje
  • Nieskończone pętle: Zmienna w pętli nigdy nie zmienia wartości
  • Błędne warunki: if(x = 5) zamiast if(x == 5)
  • Problemy z zakresem zmiennych: Zmienna nie jest dostępna tam gdzie myślisz

Przydatne skróty klawiszowe

  • Ctrl+F8: Przełącz breakpoint na aktualnej linii
  • Ctrl+Shift+F8: Wyświetl wszystkie breakpointy
  • Alt+F8: Evaluate Expression (wykonaj kod na żywo)
  • F8: Step Over
  • F9: Resume Program
Czy debugger spowalnia program?

Tak, ale tylko gdy jest aktywny. Program uruchomiony normalnie (nie w trybie debug) działa z pełną prędkością.

Dlaczego mój breakpoint nie zatrzymuje programu?

Upewnij się że uruchamiasz program w trybie debug (zielona strzałka z robaczkiem), nie w normalnym trybie run.

Co to znaczy gdy zmienna pokazuje "null"?

Oznacza że zmienna nie została zainicjalizowana lub celowo ustawiona na wartość pustą. To częsta przyczyna błędów NullPointerException.

Jak debugować pętle które wykonują się setki razy?

Użyj warunkowych breakpointów - kliknij prawym na breakpoint i ustaw warunek (np. i > 95). Program zatrzyma się tylko gdy warunek będzie spełniony.

Czy mogę zmienić wartość zmiennej podczas debugowania?

Tak! W panelu Variables kliknij prawym przyciskiem na zmienną i wybierz "Set Value". Możesz testować różne scenariusze bez restartowania programu.

Przydatne zasoby:

🚀 Zadanie dla Ciebie

Napisz prosty program który oblicza średnią z tablicy liczb, ale celowo wprowadź błąd (np. dzielenie przez 0 lub błędny warunek pętli). Użyj debuggera żeby znaleźć i naprawić błąd. Obserwuj jak zmieniają się wartości zmiennych krok po kroku!

Czy udało Ci się już złapać swój pierwszy błąd dzięki debuggerowi? Podziel się w komentarzu jakie było Twoje pierwsze doświadczenie z debugowaniem!

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Przewijanie do góry