Przejdź do głównej treści

Kwalifikacja: INF.02 - Administracja i eksploatacja systemów komputerowych, urządzeń peryferyjnych i lokalnych sieci komputerowych

Zawód: Technik informatyk

Kategorie: Sieci komputerowe Licencje i oprogramowanie Pomiary i diagnostyka Podstawy informatyki

Do wyszukiwania i usuwania błędów w kodzie programu należy zastosować program typu

A. debugger.
B. firmware.
C. sniffer.
D. kompilator.
Debugger to właściwe narzędzie do wyszukiwania i usuwania błędów w kodzie programu, bo pozwala obserwować działanie aplikacji krok po kroku, a nie tylko uruchomić ją i patrzeć, że coś nie działa. W praktyce programista może ustawić breakpoint, czyli punkt zatrzymania, sprawdzić wartości zmiennych, prześledzić wywołania funkcji na stosie, obejrzeć stan pamięci i zobaczyć, w którym miejscu logika programu zaczyna się rozjeżdżać. Moim zdaniem to jedno z najważniejszych narzędzi w normalnej pracy nad kodem, szczególnie gdy błąd nie jest oczywisty, np. program działa dobrze dla małych danych, ale psuje się przy większych wejściach. Debugger jest częścią wielu środowisk IDE, takich jak Visual Studio, IntelliJ IDEA, Eclipse, PyCharm, ale występuje też jako osobne narzędzie, np. gdb dla języków C/C++. Dobra praktyka branżowa mówi, że błędów nie powinno się szukać wyłącznie przez przypadkowe dopisywanie komunikatów na ekranie. Logi są przydatne, jasne, ale debugowanie daje dużo dokładniejszy obraz wykonania programu. Dzięki temu łatwiej wykryć błędy typu null pointer, przekroczenie zakresu tablicy, złą kolejność instrukcji, błędne warunki w pętli albo niepoprawne dane wejściowe. W profesjonalnym procesie tworzenia oprogramowania debugger często idzie w parze z testami jednostkowymi, kontrolą wersji i analizą statyczną kodu.
Do wyszukiwania i usuwania błędów w kodzie programu służy debugger, a nie narzędzia kojarzone tylko ogólnie z komputerami czy siecią. Łatwo tu wpaść w pułapkę, bo kilka nazw brzmi technicznie i każda faktycznie jest związana z informatyką, ale ich zastosowanie jest zupełnie inne. Sniffer jest narzędziem do przechwytywania i analizowania ruchu sieciowego. Używa się go na przykład do sprawdzania pakietów TCP/IP, diagnozowania problemów z komunikacją albo analizy protokołów w stylu HTTP, DNS czy DHCP. Może pomóc, gdy aplikacja sieciowa źle wysyła dane, ale sam z siebie nie służy do poprawiania kodu programu linia po linii. Firmware to oprogramowanie wbudowane w urządzenie, np. w routerze, dysku SSD, drukarce albo płycie głównej. Nie jest narzędziem diagnostycznym dla programisty, tylko raczej specjalnym typem oprogramowania sterującego sprzętem. Kompilator natomiast tłumaczy kod źródłowy na kod maszynowy, bajtkod albo inną postać wykonywalną. Wykrywa błędy składniowe i część błędów semantycznych, więc może pokazać, że brakuje średnika, typ danych się nie zgadza albo funkcja została źle wywołana. Jednak kompilator nie służy głównie do śledzenia działania programu podczas uruchomienia. Typowy błąd myślowy polega na tym, że jeśli kompilator pokazuje komunikaty o błędach, to uznaje się go za narzędzie do debugowania. To trochę za szerokie uproszczenie. Debugger pozwala zatrzymać program w konkretnym miejscu, sprawdzić zmienne, przejść instrukcja po instrukcji i znaleźć błąd logiczny, którego kompilator często wcale nie widzi. Z mojego doświadczenia, w realnej pracy najlepszy efekt daje połączenie kompilatora, testów, logów i debuggera, ale jeśli pytanie dotyczy narzędzia do wyszukiwania i usuwania błędów w kodzie, najtrafniejszą nazwą jest właśnie debugger.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.