Debuggery - narzędzia programisty
Debuggery są narzędziem potrzebnym każdemu programiście. Pozwalają one zaoszczędzić wielu godzin szukania błędów w naszym kodzie. Co więcej, dają również możliwość kontrolowania wykonywanego program, zatrzymywania go, wykonywania instrukcji krok po kroku i śledzenia wartości poszczególnych zmiennych.
W związku z tym chcę ci przedstawić ten skrót z lekcji kursu C++. Znajdziesz tu informacje, w jaki sposób korzystać z debuggerów GDB i LLDB.
Debuggery w skrócie
Rozpocznę od klasycznego debuggera GDB (narzędzie konsolowe z możliwością korzystania z różnych interfejsów graficznych), a później przejdę do narzędzia LLDB, wywodzącego się z rodziny narzędzi Clang. Chociaż LLDB jest znany ze swojej wygody, to jednak GDB jest standardem w branży. Poniżej przedstawiam kilka kluczowych komend:
Uruchamianie debuggera
Pierwszym krokiem jest uruchomienie programu pod kontrolą debuggera. Na przykład: „gdb nazwa_binarki”. Pozwala to na rozpoczęcie analizy kodu źródłowego.
Uruchamianie programu
W oknie debuggera wpisz komendę „run”.
Ustawianie Breakpointów
Breakpointy to kluczowe narzędzie debugowania. Pozwalają na zatrzymanie wykonania programu w określonym miejscu. W GDB użyj komend „break” lub „b”, aby utworzyć breakpointy. Przykładowo: „break 5” utworzy breakpoint w linii numer 5.
Lista breakpointów
Aby sprawdzić listę ustawionych breakpointów, możesz skorzystać z komendy „info breakpoints”. Daje to pełen przegląd punktów przerwania, co ułatwia zarządzanie nimi.
Usuwanie breakpointów
Po zakończeniu debugowania możesz usunąć breakpointy za pomocą komendy „clear” lub „delete breakpoint N”, gdzie N to numer breakpointu do usunięcia.
Zakończenie debugowania
Po zakończeniu procesu debugowania możesz wyjść z programu za pomocą komendy „quit”. To pozwala na czyste zakończenie debugowania i zwolnienie zasobów.
Wyświetlanie wartości zmiennych
Podczas debugowania często chcemy sprawdzić wartości zmiennych. W GDB możesz to zrobić, używając komendy „print” lub jej skrótu „p”. Przykład: „p var” wyświetli wartość zmiennej „var”.
Obserwowanie zmiennych (watchpoint)
Watchpoint to mechanizm, który umożliwia zatrzymanie wykonania programu po zmianie wartości danej zmiennej lub w określonym miejscu w pamięci. Aby użyć watchpointa, wprowadź komendę „watch var”, gdzie var to nazwa zmiennej do obserwowania.
Tryb tekstowy i graficzny
GDB oferuje możliwość korzystania z trybu tekstowego lub graficznego. Tryb graficzny można uruchomić, odpalając gdb z przełącznikiem –tui, czyli „gdb –tui nazwa_binarki”. Daje to wygodny interfejs do analizy kodu źródłowego i stosu wywołań.
Wchodzenie do funkcji
Aby wejść w środek funkcji i monitorować jej działanie, użyj komendy „step into”, jej skrótu „si” lub „s”. Pozwalają one na śledzenie przebiegu wykonywania funkcji krok po kroku.
Przeglądanie stosu wywołań
W trakcie debugowania przydatne jest monitorowanie stosu wywołań funkcji. Możesz to zrobić za pomocą komendy „backtrace” lub jej skrótu „bt”. To da Ci pełny obraz wywołań funkcji w trakcie programu.
Przesuwanie się po stosie
Jeśli chcesz przemieszczać się po stosie wywołań, możesz użyć komend „up” aby przejść do wyższego poziomu wywołań funkcji oraz „down” do niższego.
Debuggery - czy warto?
Podsumowując, debugger to nieocenione narzędzie dla programistów, które pozwala na dokładne zrozumienie i naprawianie problemów w kodzie źródłowym. Znajomość podstawowych komend debuggera, takich jak „run”, „break”, „print”, i „backtrace”, jest kluczowa dla skutecznego debugowania. Pozwala to na efektywne i precyzyjne rozwiązywanie problemów w Twoim kodzie. Warto zainwestować czas w naukę korzystania z debuggera, ponieważ może to znacząco usprawnić proces programowania.
Chcesz dowiedzieć się więcej, albo po prostu wolisz widzieć co dzieje się w konsoli? Zachęcam do obejrzenia materiału wideo. A jeśli zainteresował Cię temat debuggerów to zerknij na nasz kurs narzędzia programisty. 🛠️