8 van de beste Linux-debuggers voor software-ingenieurs

8 van de beste Linux-debuggers voor software-ingenieurs
Tekenset=ongeldigetekensetid 48

Debuggers zijn essentieel voor het opsporen van bugs in programma’s. Ze doen het voorwerk om problemen in uw code te vinden voordat het tijd is om deze te compileren, waarbij ze meestal meer informatie verstrekken dan de compiler zelf. Linux, dat voornamelijk een open-source-ecosysteem is, heeft een overvloed aan dit soort applicaties die op verschillende talen en verwerkingsarchitecturen werken. In deze gids duiken we rechtstreeks in de wereld van Linux-debuggers.

1. GNU-foutopsporing (GDB)

De GNU Debugger, ook wel GDB genoemd, is een van de krachtigste Linux-debuggers die beschikbaar zijn voor moderne programmeurs. Het is een robuust hulpmiddel met een uitgebreide reeks functies. GDB ondersteunt veel populaire programmeertalen, waaronder C, C++, Go en Rust. Het werkt ook op veel verschillende CPU-architecturen, zoals x86, x86-64, ARM, PowerPC, SPARC en MIPS.

Demonstratie van GDB met een testprogramma

Installeer GDB met behulp van deze opdrachten:

In op Ubuntu/Debian gebaseerde distributies:

In Fedora/RHEL distributies:

In op Arch gebaseerde distributies:

Zolang je compileert met GCC en debug-symbolen, kun je de instructies van een programma doorlopen terwijl het wordt uitgevoerd door s te typen. Als u r typt, wordt uw programma door de debugger geleid. Om GDB te starten terwijl het programma is geladen, typt u gewoon gdb in uw terminal, gevolgd door het programmapad.

Als je eenmaal binnen bent, typ je help en krijg je een overzichtelijke catalogus waarin alles wordt uitgelegd wat je kunt doen met deze krachtige debugger!

2. Debugger voor gegevensweergave (DDD)

Als rommelen met commando’s niet jouw ding is, maar je nog steeds dol bent op de functies die GDB te bieden heeft, biedt DDD je een eenvoudige grafische weergave front-end die alle functies biedt in een point-and-click-interface. Het is de typische Linux-foutopsporings-GUI.

DDD voert een rudimentair programma uit en sluit af.

De gebruikersinterface ziet er misschien een beetje kaal uit, maar is net zo krachtig als elke andere debugger. Het verschil hier is dat je de kenmerkende debugger van GNU krijgt met een grafische interface!

Om het te installeren:

In op Ubuntu/Debian gebaseerde distributies:

In Fedora/RHEL distributies:

In op Arch gebaseerde distributies:

Alles wat op Arch is gebaseerd, zal een AUR-helper moeten gebruiken, omdat DDD niet bestaat in de officiële repository’s. Als alternatief kunt u DDD installeren op een Arch-gebaseerd systeem zonder AUR-helper:

3. LLDB

LLDB is onderdeel van het LLVM-project. De LLVM-suite wint aan populariteit dankzij de efficiënte workflow. Het is ook de standaard debugger geworden voor Xcode en Android Studio van macOS. Enkele van de belangrijkste kenmerken van LLDB zijn ondersteuning voor verschillende compilerintegraties en foutopsporing op afstand. Het ondersteunt de C-talen (C, C++ en Objective-C).

Linuxdebugger Lldb

Voor degenen die al bekend zijn met de basis GDB-opdrachten, zal LLDB vertrouwd aanvoelen. Als u run of r typt, wordt het programma gestart, en als u step of s typt, doorloopt u de subroutines.

Om het te installeren:

In op Ubuntu/Debian gebaseerde distributies:

In Fedora/RHEL distributies:

In op Arch gebaseerde distributies:

4. Duik

Delve is een eenvoudige, maar veelzijdige Linux-foutopsporing voor de programmeertaal Go van Google. Je kunt het gebruiken om tijdens runtime met je programma te communiceren en zaken als goroutines en stapels te manipuleren. De debugger zelf is geschreven in Go, waardoor runtime in dezelfde omgeving mogelijk is als het programma dat u test.

Delve debugger voert een programma uit met rudimentaire code.

Delve werkt volgens hetzelfde principe als GDB en LLDB, behalve dat het een unieke set opdrachten heeft die sterk verschillen van de andere twee. Typ gewoon help als u eenmaal binnen bent en u krijgt een volledige lijst met alle foutopsporingsopties die u krijgt.

In tegenstelling tot meer algemene debuggers voor meerdere talen, biedt Delve meer Go-specifieke opdrachten waarmee u op een gedetailleerder niveau in uw applicatie kunt duiken terwijl deze wordt uitgevoerd.

Gebruik Delve om specifieke Go-routines en -threads te onderzoeken.

Om het te installeren:

In op Ubuntu/Debian gebaseerde distributies:

In Fedora/RHEL distributies:

In op Arch gebaseerde distributies:

5. Xdebug

Hoewel de meeste mensen leren hun variabelen (in PHP-gemeenschappen bekend als “dump & die”) te dumpen om erachter te komen wat er mis is met een bepaald aspect van hun code, zijn er momenten waarop je iets zwaarders nodig hebt die u door al uw routines kan leiden. Xdebug biedt dit in overvloed voor beginnende en ervaren PHP-programmeurs.

Xdebug-uitvoer tijdens een debug-sessie van enkele eenvoudige

Het is een Linux-debugger die regel voor regel door de PHP-code stapt en precies laat zien wat er gebeurt als een webpagina wordt verwerkt. Xdebug werkt ook op verschillende IDE’s, waaronder VSCode. Andere functies zijn onder meer een robuuste profiler, stacktracer en de mogelijkheid om het volledige uitvoeringssegment te dumpen.

Om Xdebug te installeren:

In op Ubuntu/Debian gebaseerde distributies:

In Fedora/RHEL distributies:

In op Arch gebaseerde distributies:

6. KDbg

KDbg is een GUI-foutopsporing voor de KDE-bureaubladomgeving. Omdat het net als DDD als een GDB-front-end draait, krijg je alle functies van GDB naast een intuïtieve gebruikersinterface. Meer ervaren programmeurs zullen zeker een duidelijk zicht op alle variabelen waarderen terwijl ze door hun code stappen, evenals een volledig speciaal paneel dat laat zien wat elk CPU-register bevat. Dit is lang niet zo eenvoudig te visualiseren in een van de andere debuggers die hier worden behandeld.

Hierdoor is KDbg een fantastische keuze voor traditionele native applicatieprogrammeurs, van de kikkervisjes die net beginnen te leren tot de meest geharde veteranen.

KDbg debugt een lopend programma geschreven in C.

KDbg installeren:

In op Ubuntu/Debian gebaseerde distributies:

In Fedora/RHEL distributies:

In op Arch gebaseerde distributies:

7. Verkiezingspoort

Valgrind is een oerdegelijke geheugendebugger die veel extra tools biedt voor softwareanalyse. Het draait op zowel Linux als Mac. Bovendien kunt u het als raamwerk gebruiken en dynamische analysehulpmiddelen zoals profilers creëren. Over het geheel genomen is Valgrind een uitstekende keuze voor professionals vanwege de rijke functies en verscheidenheid aan tools die het geheugen van een programma controleren terwijl het wordt uitgevoerd.

Valgrind detecteert een geheugenlek in een programma.

Om Valgrind te installeren:

Op Ubuntu/Debian-gebaseerde distributies:

Op Fedora/RHEL distributies:

Op op Arch gebaseerde distributies:

8. spoor

strace is een gebruikersruimtehulpprogramma voor Unix waarmee gebruikers systeemaanroepen en signalen rechtstreeks vanaf de terminal kunnen traceren.

Linuxdebugger Strace

Programmeurs kunnen het gebruiken om stacktraces te dumpen, systeemaanroepen te filteren, retourcodes te wijzigen, bestandsdescriptors te extraheren en nog veel meer.

Wat nog belangrijker is, is dat je met strace verbinding kunt maken met actieve programma’s. Hierdoor kunt u onder de vingernagels komen van alle software die u op uw computer uitvoert, om meer te weten te komen over de oorzaken van een crash.

Strace installeren:

In op Ubuntu/Debian gebaseerde distributies:

In Fedora/RHEL distributies:

In op Arch gebaseerde distributies:

Het Arsenaal wacht

Met deze tools kunt u uw code porren, prikken en analyseren op manieren die voorheen misschien ontoegankelijk aanvoelden. Er is misschien een beetje een leercurve die je moet volgen, maar het is de moeite waard. Als je serieus wilt programmeren in Linux, zal het leren gebruiken van de debuggers je op de lange termijn veel meer tijd besparen.

Nu je de beste Linux-debuggers hebt, is het tijd om de beste Linux-distributies voor ontwikkelaars en programmeurs te vinden.. een>

Afbeeldingscredit: alle afbeeldingen op auteur.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *