8 dei migliori debugger Linux per ingegneri del software

8 dei migliori debugger Linux per ingegneri del software
Set di caratteri=idcarattere non valido 48

I debugger sono essenziali per individuare i bug nei programmi. Fanno il lavoro di cercare di trovare problemi nel codice prima che sia il momento di compilarlo, di solito fornendo più informazioni di quante ne farebbe il compilatore stesso. Linux, essendo un ecosistema principalmente open source, ha una miriade di questi tipi di applicazioni che funzionano su diversi linguaggi e architetture di elaborazione. In questa guida ci immergeremo direttamente nel mondo dei debugger Linux.

1. Debugger GNU (GDB)

Il GNU Debugger, noto anche come GDB, è uno dei debugger Linux più potenti disponibili per i programmatori moderni. È uno strumento robusto con un ampio set di funzionalità. GDB supporta molti linguaggi di programmazione più diffusi, inclusi C, C++, Go e Rust. Funziona anche su molte architetture CPU diverse, come x86, x86-64, ARM, PowerPC, SPARC e MIPS.

Dimostrazione di GDB che esegue un programma di test

Installa GDB utilizzando questi comandi:

Nelle distribuzioni basate su Ubuntu/Debian:

Nelle distribuzioni Fedora/RHEL:

Nelle distribuzioni basate su Arch:

Finché compili utilizzando GCC con simboli di debug, puoi seguire le istruzioni di un programma mentre viene eseguito digitando s. Digitando r il tuo programma verrà eseguito attraverso il debugger. Per avviare GDB con il programma caricato, basta digitare gdb nel terminale seguito dal percorso del programma.

Una volta entrato, digitando help otterrai un catalogo ben organizzato che spiega tutto ciò che puoi fare con questo potentissimo debugger!

2. Debugger visualizzazione dati (DDD)

Se giocherellare con i comandi non fa per te ma ami comunque le funzionalità che GDB ha da offrire, DDD ti offre una semplice grafica front-end che fornisce tutte le sue funzionalità in un’interfaccia punta e clicca. È la GUI per eccellenza del debugger di Linux.

DDD esegue un programma rudimentale ed esce.

L’interfaccia utente può sembrare un po’ scarna, ma è potente quanto qualsiasi altro debugger. La differenza qui è che ottieni il debugger della firma GNU con un’interfaccia grafica!

Per installarlo:

Nelle distribuzioni basate su Ubuntu/Debian:

Nelle distribuzioni Fedora/RHEL:

Nelle distribuzioni basate su Arch:

Qualunque cosa basata su Arch dovrà utilizzare un helper AUR, poiché DDD non esiste nei suoi repository ufficiali. In alternativa, puoi installare DDD su un sistema basato su Arch senza un helper AUR:

3. LLDB

LLDB fa parte del progetto LLVM. La suite LLVM sta guadagnando popolarità, grazie al suo flusso di lavoro efficiente. È anche diventato il debugger predefinito per Xcode e Android Studio di macOS. Alcune delle caratteristiche principali di LLDB includono il supporto per varie integrazioni del compilatore e debug remoto. Supporta i linguaggi C (C, C++ e Objective-C).

Linuxdebugger Lldb

Per coloro che hanno già familiarità con i comandi GDB di base, LLDB risulterà familiare. Digitando run o r si esegue il programma, mentre digitando step o s si passano attraverso le sue subroutine.

Per installarlo:

Nelle distribuzioni basate su Ubuntu/Debian:

Nelle distribuzioni Fedora/RHEL:

Nelle distribuzioni basate su Arch:

4. Approfondire

Delve è un debugger Linux semplice ma ricco di funzionalità per il linguaggio di programmazione Go di Google. Puoi usarlo per interagire con il tuo programma in runtime e manipolare cose come goroutine e stack. Il debugger stesso è scritto in Go, fornendo così un runtime nello stesso ambiente del programma che stai testando.

Delve debugger che esegue un programma con codice rudimentale.

Delve funziona secondo lo stesso principio di GDB e LLDB, tranne per il fatto che ha un insieme unico di comandi che differiscono notevolmente dagli altri due. Basta digitare help una volta entrato e avrai un elenco completo di tutte le opzioni di debug che ti offre.

A differenza dei debugger più generali per più lingue, Delve offre comandi più specifici per Go che ti consentono di inserire un livello più granulare nella tua applicazione durante l’esecuzione.

Utilizzo di Delve per esaminare routine e thread Go specifici.

Per installarlo:

Nelle distribuzioni basate su Ubuntu/Debian:

Nelle distribuzioni Fedora/RHEL:

Nelle distribuzioni basate su Arch:

5. Xdebug

Mentre la maggior parte delle persone impara a scaricare le proprie variabili (noto nelle comunità PHP come “dump & die”) per scoprire cosa c’è che non va in un certo aspetto del proprio codice, ci sono momenti in cui è necessario qualcosa di più pesante che può guidarti attraverso tutte le tue routine. Xdebug offre tutto ciò agli aspiranti e ai programmatori PHP veterani.

Output di Xdebug durante una sessione di debug di alcuni semplici

È un debugger Linux che esamina il codice PHP riga per riga e mostra esattamente cosa sta succedendo durante l’elaborazione di una pagina web. Xdebug funziona anche su diversi IDE, incluso VSCode. Le sue altre funzionalità includono un robusto profiler, stack tracer e la possibilità di eseguire il dump dell’intero segmento di esecuzione.

Per installare Xdebug:

Nelle distribuzioni basate su Ubuntu/Debian:

Nelle distribuzioni Fedora/RHEL:

Nelle distribuzioni basate su Arch:

6. KDbg

KDbg è un debugger GUI per l’ambiente desktop KDE. Poiché funziona come front-end GDB come fa DDD, ottieni tutte le funzionalità di GDB insieme a un’interfaccia utente intuitiva. I programmatori più esperti apprezzeranno sicuramente una visione chiara di tutte le variabili mentre eseguono il codice, nonché un pannello completamente dedicato che mostra cosa contiene ciascun registro della CPU. Questo non è altrettanto facile da visualizzare in nessuno degli altri debugger trattati qui.

Per questo motivo, KDbg è una scelta fantastica per i tradizionali programmatori di applicazioni native, dai girini che hanno appena iniziato ad imparare ai veterani più incalliti.

KDbg esegue il debug di un programma in esecuzione scritto in C.

Per installare KDbg:

Nelle distribuzioni basate su Ubuntu/Debian:

Nelle distribuzioni Fedora/RHEL:

Nelle distribuzioni basate su Arch:

7. Cancello elettorale

Valgrind è un debugger di memoria solido come una roccia che offre molti strumenti aggiuntivi per l’analisi del software. Funziona sia su Linux che su Mac. Inoltre, puoi usarlo come framework e creare strumenti di analisi dinamica come i profiler. Nel complesso, Valgrind è una scelta eccellente per i professionisti grazie al suo ricco set di funzionalità e alla varietà di strumenti che monitorano la memoria di un programma durante l’esecuzione.

Valgrind rileva una perdita di memoria in un programma.

Per installare Valgrind:

Sulle distribuzioni basate su Ubuntu/Debian:

Sulle distribuzioni Fedora/RHEL:

Sulle distribuzioni basate su Arch:

8. strace

strace è un’utilità in spazio utente per Unix che consente agli utenti di tracciare chiamate e segnali di sistema direttamente dal terminale.

Il debugger Linux Strace

I programmatori possono utilizzarlo per eseguire il dump delle tracce dello stack, filtrare le chiamate di sistema, modificare i codici di ritorno, estrarre descrittori di file e molto altro.

Ancora più importante, strace ti consente di collegarti ai programmi in esecuzione. Ciò ti consente di controllare qualsiasi software in esecuzione sul tuo computer per saperne di più su cosa potrebbe causare un arresto anomalo.

Per installare strace:

Nelle distribuzioni basate su Ubuntu/Debian:

Nelle distribuzioni Fedora/RHEL:

Nelle distribuzioni basate su Arch:

L’Arsenale attende

Con questi strumenti puoi colpire, produrre e analizzare il tuo codice in modi che in precedenza potevano sembrare inaccessibili. Potrebbe esserci un po’ di curva di apprendimento da seguire, ma ne vale la pena. Se sei seriamente intenzionato a programmare in Linux, imparare a utilizzare i suoi debugger ti farà risparmiare molto più tempo a lungo termine.

Ora che hai i migliori debugger Linux, è tempo di trovare le migliori distribuzioni Linux per sviluppatori e programmatori.

Credito immagine: tutte le immagini per autore.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *