8 najlepszych debugerów systemu Linux dla inżynierów oprogramowania

8 najlepszych debugerów systemu Linux dla inżynierów oprogramowania
Zestaw znaków=nieprawidłowy identyfikator charsetid 48

Debugery są niezbędne do lokalizowania błędów w programach. Wykonują całą pracę polegającą na wyszukiwaniu problemów w kodzie, zanim nadejdzie czas na jego kompilację, zwykle dostarczając więcej informacji niż sam kompilator. Linux, będący ekosystemem typu open source, oferuje mnóstwo tego typu aplikacji, które działają w kilku różnych językach i architekturach przetwarzania. W tym przewodniku zagłębimy się bezpośrednio w świat debugerów Linuksa.

1. Debuger GNU (GDB)

Debugger GNU, znany również jako GDB, to jeden z najpotężniejszych debuggerów Linuksa dostępnych dla współczesnych programistów. Jest to solidne narzędzie z rozbudowanym zestawem funkcji. GDB obsługuje wiele popularnych języków programowania, w tym C, C++, Go i Rust. Działa również na wielu różnych architekturach procesorów, takich jak x86, x86-64, ARM, PowerPC, SPARC i MIPS.

Demonstracja GDB uruchamiającego program testowy

Zainstaluj GDB za pomocą tych poleceń:

W dystrybucjach opartych na Ubuntu/Debianie:

W dystrybucjach Fedory/RHEL:

W dystrybucjach opartych na Arch:

Jeśli kompilujesz przy użyciu GCC z symbolami debugowania, możesz przechodzić przez instrukcje programu podczas jego działania, wpisując s. Wpisanie r spowoduje uruchomienie programu w debugerze. Aby uruchomić GDB z załadowanym programem, po prostu wpisz gdb w terminalu, a następnie ścieżkę programu.

Gdy już wejdziesz, wpisanie help wyświetli dobrze zorganizowany katalog wyjaśniający wszystko, co możesz zrobić za pomocą tego wszechstronnego debugera!

2. Debuger wyświetlania danych (DDD)

Jeśli nie lubisz bawić się poleceniami, ale nadal podobają Ci się funkcje, jakie ma do zaoferowania GDB, DDD oferuje prostą graficzną frontend, który udostępnia wszystkie funkcje w interfejsie typu „wskaż i kliknij”. To kwintesencja graficznego interfejsu użytkownika debugera systemu Linux.

DDD uruchamia podstawowy program i wychodzi.

Interfejs użytkownika może wyglądać trochę zwyczajnie, ale jest tak samo potężny jak każdy inny debuger. Różnica polega na tym, że otrzymujesz debuger sygnatur GNU z interfejsem graficznym!

Aby go zainstalować:

W dystrybucjach opartych na Ubuntu/Debianie:

W dystrybucjach Fedory/RHEL:

W dystrybucjach opartych na Arch:

Wszystko, co jest oparte na Archu, będzie musiało korzystać z pomocnika AUR, ponieważ DDD nie istnieje w jego oficjalnych repozytoriach. Alternatywnie możesz zainstalować DDD w systemie opartym na Arch bez pomocnika AUR:

3. LLDB

LLDB jest częścią projektu LLVM. Pakiet LLVM zyskuje na popularności dzięki wydajnemu przepływowi pracy. Stał się także domyślnym debugerem dla Xcode i Android Studio w systemie macOS. Niektóre z głównych funkcji LLDB obejmują obsługę różnych integracji kompilatorów i zdalne debugowanie. Obsługuje języki C (C, C++ i Objective-C).

Linuxdebugger Lldb

Dla osób zaznajomionych już z podstawowymi poleceniami GDB, LLDB będzie znajome. Wpisanie run lub r uruchamia program, a wpisanie step lub s powoduje przejście przez jego podprogramy.

Aby go zainstalować:

W dystrybucjach opartych na Ubuntu/Debianie:

W dystrybucjach Fedory/RHEL:

W dystrybucjach opartych na Arch:

4. Zagłęb się

Delve to prosty, ale bogaty w funkcje debuger systemu Linux dla języka programowania Google Go. Możesz go używać do interakcji z programem w czasie wykonywania i manipulowania takimi rzeczami, jak goroutines i stosy. Sam debuger jest napisany w Go, zapewniając w ten sposób środowisko wykonawcze w tym samym środowisku, co testowany program.

Debuger Delve uruchamiający program z podstawowym kodem.

Delve działa na tej samej zasadzie co GDB i LLDB, z tą różnicą, że ma unikalny zestaw poleceń, który znacznie różni się od pozostałych dwóch. Po wejściu po prostu wpisz help, a wyświetli się pełna lista wszystkich dostępnych opcji debugowania.

W przeciwieństwie do bardziej ogólnych debugerów dla wielu języków, Delve oferuje więcej poleceń specyficznych dla Go, które pozwalają na bardziej szczegółowe przeglądanie aplikacji podczas jej działania.

Używanie aplikacji Delve do sprawdzania konkretnych procedur i wątków Go.

Aby go zainstalować:

W dystrybucjach opartych na Ubuntu/Debianie:

W dystrybucjach Fedory/RHEL:

W dystrybucjach opartych na Arch:

5. Xdebug

Chociaż większość ludzi uczy się zrzucać swoje zmienne (co w społecznościach PHP nazywa się „dump & die”), aby dowiedzieć się, co jest nie tak z pewnym aspektem ich kodu, są chwile, kiedy potrzebujesz czegoś bardziej wytrzymałego które przeprowadzą Cię przez wszystkie Twoje rutynowe czynności. Xdebug oferuje to mnóstwo zarówno początkującym, jak i doświadczonym programistom PHP.

Dane wyjściowe Xdebug podczas sesji debugowania jakiegoś prostego

To debuger dla systemu Linux, który krok po kroku przechodzi przez kod PHP wiersz po wierszu i pokazuje dokładnie, co dzieje się podczas przetwarzania strony internetowej. Xdebug działa również na kilku IDE, w tym na VSCode. Inne jego funkcje obejmują solidny profiler, śledzenie stosu i możliwość zrzutu pełnego segmentu wykonania.

Aby zainstalować Xdebug:

W dystrybucjach opartych na Ubuntu/Debianie:

W dystrybucjach Fedory/RHEL:

W dystrybucjach opartych na Arch:

6. KDbg

KDbg to debuger GUI dla środowiska graficznego KDE. Ponieważ działa jako interfejs GDB, podobnie jak DDD, otrzymujesz wszystkie funkcje GDB wraz z intuicyjnym interfejsem użytkownika. Bardziej doświadczeni programiści z pewnością docenią przejrzysty widok wszystkich zmiennych podczas przechodzenia przez kod, a także całkowicie dedykowany panel pokazujący, co przechowują poszczególne rejestry procesora. Nie jest to tak łatwe do wizualizacji w żadnym innym debugerze opisanym tutaj.

Z tego powodu KDbg jest fantastycznym wyborem dla tradycyjnych programistów aplikacji natywnych, od kijanek, które dopiero zaczynają się uczyć, po najbardziej zatwardziałych weteranów.

KDbg debuguje działający program napisany w C.

Aby zainstalować KDbg:

W dystrybucjach opartych na Ubuntu/Debianie:

W dystrybucjach Fedory/RHEL:

W dystrybucjach opartych na Arch:

7. Brama wyborcza

Valgrind to solidny debuger pamięci oferujący wiele dodatkowych narzędzi do analizy oprogramowania. Działa zarówno na Linuksie, jak i na Macu. Co więcej, można go używać jako frameworka i tworzyć narzędzia do analizy dynamicznej, takie jak profilery. Ogólnie rzecz biorąc, Valgrind to doskonały wybór dla profesjonalistów ze względu na bogaty zestaw funkcji i różnorodność narzędzi monitorujących pamięć programu podczas jego działania.

Valgrind wykrywa wyciek pamięci w programie.

Aby zainstalować Valgrind:

W dystrybucjach opartych na Ubuntu/Debianie:

W dystrybucjach Fedory/RHEL:

W dystrybucjach opartych na Arch:

8. strace

strace to narzędzie przestrzeni użytkownika dla systemu Unix, które umożliwia użytkownikom śledzenie wywołań systemowych i sygnałów bezpośrednio z terminala.

Linuxdebugger Strace

Programiści mogą go używać do zrzucania śladów stosu, filtrowania wywołań systemowych, modyfikowania kodów powrotu, wyodrębniania deskryptorów plików i wielu innych.

Co ważniejsze, strace umożliwia dołączanie do uruchomionych programów. Dzięki temu możesz dostać się pod paznokcie dowolnego oprogramowania uruchomionego na komputerze, aby dowiedzieć się więcej o tym, co może być przyczyną awarii.

Aby zainstalować Strace’a:

W dystrybucjach opartych na Ubuntu/Debianie:

W dystrybucjach Fedory/RHEL:

W dystrybucjach opartych na Arch:

Arsenał czeka

Za pomocą tych narzędzi możesz szturchać, szturchać i analizować kod w sposób, który wcześniej mógł wydawać się niedostępny. Może być trochę nauki do naśladowania, ale warto. Jeśli poważnie myślisz o programowaniu w Linuksie, nauka korzystania z debugerów pozwoli Ci zaoszczędzić znacznie więcej czasu w dłuższej perspektywie.

Teraz, gdy masz już najlepsze debugery Linuksa, czas znaleźć najlepsze dystrybucje Linuksa dla programistów i programistów.najlepsze dystrybucje Linuksa dla programistów i programistów.najlepsze dystrybucje Linuksa dla programistów i programistów a>

Źródło obrazu: wszystkie obrazy autorstwa autora.

Dodaj komentarz

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