KWALIFIKACJA INF3 - STYCZEŃ 2021 (test 2)

PYTANIE NR 33.
Debugger to oprogramowanie, którego zadaniem jest
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Debugger służy do analizowania programu w trakcie jego działania (analiza dynamiczna). Pozwala zatrzymać wykonanie, podejrzeć wartości zmiennych i przebieg wywołań, aby znaleźć przyczynę nieprawidłowego działania. Nie jest narzędziem do sprawdzania składni, linkowania ani instalacji środowiska.

Pełne wyjaśnienie:

Debugger to narzędzie programistyczne używane do diagnozowania problemów w działającym programie, czyli do tzw. analizy dynamicznej. Oznacza to, że program jest uruchomiony (albo uruchamiany pod kontrolą debuggera), a programista obserwuje i kontroluje jego wykonanie.

Typowe możliwości debuggera to m.in.:

  • ustawianie punktów przerwania (breakpointów) i zatrzymywanie programu w wybranym miejscu,
  • krokowe wykonywanie instrukcji (step into/over/out),
  • podgląd i zmiana wartości zmiennych w trakcie działania,
  • analiza stosu wywołań (call stack) oraz wątków,
  • identyfikacja miejsc, w których występują wyjątki lub błędy wykonania.

Odpowiedź "dynamiczna analiza uruchomionego programu w celu wykrycia przyczyn nieprawidłowego działania" jest poprawna, bo dokładnie opisuje istotę debugowania: szukanie źródła problemu nie w samym tekście kodu, lecz poprzez obserwację rzeczywistego przebiegu wykonania.

Pozostałe propozycje dotyczą innych narzędzi lub etapów pracy:

  • "wykrywanie błędów składniowych … w kodzie źródłowym" opisuje głównie kompilator, interpreter lub analizator składni w IDE (analiza statyczna lub kompilacja), a nie debugger.
  • "łączenie plików bibliotek … w plik wykonywalny" to rola linkera, czyli etapu budowania programu po kompilacji.
  • "instalowanie środowiska programistycznego" to czynność administracyjna/konfiguracyjna, a nie funkcja debuggera.

Na egzaminie warto zapamiętać prostą regułę: debugger działa wtedy, gdy program działa (uruchomienie pod kontrolą), a kompilator/linker działają na plikach źródłowych i wynikach kompilacji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Debugger to narzędzie, które uruchamia program pod kontrolą i pozwala obserwować jego wykonanie. Umożliwia m.in. zatrzymanie programu, sprawdzenie wartości zmiennych i prześledzenie krok po kroku, gdzie powstaje błąd lub nieprawidłowe działanie.
Debugger pozwala uruchomić program i wykonywać go etapami: zatrzymać na breakpoint, wykonać pojedynczą instrukcję, wejść do funkcji lub ją pominąć. Dzięki temu widać, jak zmieniają się zmienne i którędy przepływa sterowanie, co ułatwia znalezienie przyczyny błędu.
To analiza dynamiczna, bo odbywa się w czasie działania programu: obserwujesz realne wartości danych, wyniki instrukcji i zachowanie w konkretnym środowisku. Analiza składni lub typów w edytorze jest statyczna, bo nie wymaga uruchamiania aplikacji.
Kompilator tłumaczy kod źródłowy na kod wynikowy i wykrywa błędy składni lub typów na etapie budowania. Debugger służy do diagnozowania działania już uruchomionego programu, np. gdy występują wyjątki, błędy logiki lub nieoczekiwane wartości zmiennych.
Linker łączy pliki wynikowe i biblioteki w gotowy plik wykonywalny. Debugger nie tworzy programu, tylko pomaga go analizować w trakcie działania. Na egzaminie warto kojarzyć: linker = etap budowania, debugger = etap uruchomienia i diagnozy.
Debugger jest szczególnie przydatny, gdy potrzebujesz szybko sprawdzić stan programu w konkretnym miejscu (np. przed instrukcją warunkową) i prześledzić wykonanie krokami. Logi są lepsze, gdy błąd trudno odtworzyć lub gdy analizujesz działanie w środowisku produkcyjnym.
Najczęściej myli się debugowanie z wykrywaniem błędów składni (kompilator/IDE) oraz z linkowaniem. Częsty jest też skrót myślowy, że "debugger to instalator IDE", bo debugger bywa częścią środowiska. W pytaniach wybieraj opis pracy na uruchomionym programie.
Breakpoint zatrzymuje program w wybranym miejscu, zanim wykona się kolejna instrukcja. Dzięki temu możesz sprawdzić wartości zmiennych, parametry funkcji, warunki w instrukcjach if oraz stos wywołań. To podstawowa technika lokalizowania miejsca, gdzie zaczyna się problem.
Stos wywołań (call stack) pokazuje sekwencję funkcji/metod, które doprowadziły do aktualnego miejsca wykonania. Pomaga zrozumieć kontekst błędu, np. skąd przyszło wywołanie i jakie były parametry. Jest kluczowy przy analizie wyjątków i błędów wykonania.
Debugger nie naprawia błędów sam. Dostarcza informacji, które pozwalają programiście znaleźć przyczynę problemu (np. złą wartość zmiennej, niewłaściwy warunek, nieobsłużony wyjątek). Naprawa polega na zmianie kodu i ponownym uruchomieniu oraz weryfikacji.
info

Około 76% zdających odpowiada poprawnie na to pytanie. średnio łatwe

Według specjalistów z branży: "Debugger służy do analizowania programu w trakcie jego działania (analiza dynamiczna)."

Źródła:

  • GNU Project: GDB — The GNU Debugger, dokumentacja (opis uruchamiania programu pod kontrolą debuggera i debugowania). https://www.gnu.org/software/gdb/documentation/ (dostęp: 2026-02-27)
  • Microsoft Learn: Visual Studio Debugger — dokumentacja funkcji debugowania (breakpoints, step, watch, call stack). https://learn.microsoft.com/en-us/visualstudio/debugger/ (dostęp: 2026-02-27)
  • Wikipedia (EN): Debugger — definicja i opis narzędzia do testowania i debugowania programów. https://en.wikipedia.org/wiki/Debugger (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja narzędzi debugowania używanych w IDE (np. Visual Studio, VS Code)
  • Podręczniki z podstaw inżynierii oprogramowania: rozdziały o debugowaniu i testowaniu
  • Materiały do INF.3 dotyczące pracy w środowisku programistycznym i diagnostyki aplikacji

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego