KWALIFIKACJA INF3 - STYCZEŃ 2016

PYTANIE NR 34.
Program debugger służy do
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Debugger to narzędzie do uruchamiania programu pod kontrolą i obserwacji jego działania (np. krokowo, z punktami przerwania), aby znaleźć miejsce powstawania błędów wykonania i błędów logicznych. Nie służy do kompilacji ani do samej kontroli składni kodu.

Pełne wyjaśnienie:

Debugger (debuger) służy do analizy wykonywanego programu, czyli pracy z programem w trakcie jego działania. Typowe funkcje debuggera to m.in. uruchamianie aplikacji w trybie debug, ustawianie punktów przerwania (breakpoint), wykonywanie krokowe (step/next), podgląd i modyfikacja wartości zmiennych, analiza stosu wywołań oraz obserwacja wyjątków. Dzięki temu można zlokalizować źródło błędu (np. miejsce nieprawidłowej logiki, nieoczekiwany stan danych, błąd w przepływie sterowania).

Opcja "interpretacji kodu w wirtualnej maszynie Java" opisuje działanie środowiska uruchomieniowego JVM (wykonywanie bajtkodu), a nie podstawową rolę debuggera. Debugger może współpracować z JVM, ale nie jest to jego definicja.

Opcja "analizy kodu źródłowego w celu odnalezienia błędów składniowych" odnosi się do parsera/kompilatora, lintera albo mechanizmów walidacji składni w IDE. Błędy składni zwykle są wykrywane przed uruchomieniem programu, natomiast debugger jest nastawiony na diagnozę problemów podczas wykonania.

Opcja "tłumaczenia kodu zapisanego językiem wyższego poziomu na język maszynowy" to definicja kompilatora. Kompilator przygotowuje kod do wykonania, a debugger pomaga zrozumieć, co dzieje się podczas działania programu.

Wskazówka egzaminacyjna: gdy w treści pojawia się "lokalizacja błędów podczas działania", myśl o debugowaniu (breakpointy, krokowanie, podgląd zmiennych). Gdy pojawia się "tłumaczenie na kod maszynowy" – to kompilacja, a gdy "błędy składni" – to analiza składni/lint.

Dodatkowe pytania

Dodatkowe pytania (FAQ):

Debugger to narzędzie do uruchamiania programu pod kontrolą i obserwacji jego działania.

Pozwala krokowo wykonywać kod, zatrzymywać program na breakpointach i sprawdzać wartości zmiennych, aby zlokalizować błędy wykonania oraz błędy logiczne.

Najczęściej spotkasz: breakpointy, wykonanie krokowe (step/next), podgląd zmiennych, watch/locals, analizę stosu wywołań (call stack) i podgląd wyjątków.

Te funkcje pomagają zobaczyć, gdzie i dlaczego program zachowuje się inaczej niż oczekujesz.

Kompilator tłumaczy kod na postać wykonywalną (np. kod maszynowy lub pośredni), zwykle przed uruchomieniem programu.

Debugger działa głównie podczas wykonywania programu: zatrzymuje go, pozwala analizować stan i ułatwia znalezienie miejsca powstania błędu.

Lintowanie to analiza kodu źródłowego (często statyczna) w celu wykrycia problemów stylu, potencjalnych błędów i czasem błędów składni.

Debugowanie polega na obserwacji programu w trakcie działania (runtime), aby sprawdzić realne wartości danych i przebieg wykonywania instrukcji.

Debugger jest lepszy, gdy chcesz szybko sprawdzić stan programu w wielu miejscach bez dopisywania i usuwania logów.

Sprawdza się przy złożonych warunkach, pętlach, wyjątkach i problemach trudnych do odtworzenia. Printy/logi bywają prostsze w środowiskach produkcyjnych.

Częsty błąd to utożsamianie debuggera z narzędziem do wykrywania błędów składni.

Błędy składni zwykle wykrywa kompilator/interpreter lub edytor (podkreślenia, komunikaty). Debugger jest szczególnie przydatny dla błędów wykonania i logicznych.

Nie. Debuggery istnieją dla wielu języków i środowisk (np. C/C++, C#, Python, JavaScript).

W Javie debugger współpracuje z JVM, ale sama JVM nie jest debuggerem. Na egzaminie ważne jest rozróżnienie narzędzia uruchomieniowego od narzędzia diagnostycznego.

Przy błędzie logicznym program zwykle się uruchamia, ale daje zły wynik. Debugger pozwala zatrzymać wykonanie w wybranym miejscu, prześledzić krok po kroku decyzje programu i porównać oczekiwane wartości zmiennych z rzeczywistymi.

Breakpoint to punkt przerwania, w którym debugger zatrzymuje program.

Ustawia się go, aby obejrzeć stan aplikacji w konkretnym miejscu: wartości zmiennych, parametry funkcji, kolejność wywołań. To skraca czas szukania przyczyny błędu bez ręcznego dodawania logów.

Szukaj sformułowań: "analiza wykonywanego programu", "krokowe wykonywanie", "lokalizacja błędów", "śledzenie działania", "podgląd zmiennych".

Jeśli odpowiedź mówi o "tłumaczeniu na język maszynowy" albo "błędach składni", to dotyczy raczej kompilatora/lintera niż debuggera.

info

Około 55% zdających odpowiada poprawnie na to pytanie. średnie

Według specjalistów z branży: "Debugger to narzędzie do uruchamiania programu pod kontrolą i obserwacji jego działania (np. krokowo, z punktami przerwania), aby znaleźć miejsce powstawania błędów wykonania i błędów logicznych."

Źródła:

  • GNU Project Documentation: "Debugging with GDB" (GDB Manual), https://sourceware.org/gdb/documentation/ (dostęp 2026-03-01)
  • Microsoft Learn: "Debugging in Visual Studio" (dokumentacja debuggera), https://learn.microsoft.com/en-us/visualstudio/debugger/ (dostęp 2026-03-01)
  • Wikipedia (PL): "Debuger", https://pl.wikipedia.org/wiki/Debuger (dostęp 2026-03-01)

Materiały:

  • Dokumentacja debuggera w używanym IDE (np. Visual Studio / IntelliJ / VS Code)
  • Podstawy inżynierii oprogramowania: testowanie i debugowanie
  • Instrukcje do GDB lub LLDB (podstawowe komendy: break, step, next, print)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego