8 dei Migliori Debugger Linux per Ingegneri del Software

I debugger sono essenziali per individuare i bug nei programmi. Fanno il lavoro di cercare problemi nel tuo codice prima del momento in cui è il momento di compilarlo, di solito fornendo più informazioni di quelle che il compilatore stesso offrirebbe. Linux, essendo un ecosistema principalmente open-source, ha un’abbondanza di questo tipo di applicazioni che funzionano su diversi linguaggi e architetture di processing. In questa guida, ci immergeremo direttamente nel mondo dei debugger Linux.
Indice
- GNU Debugger(GDB)
- Data Display Debugger (DDD)
- LLDB
- Delve
- Xdebug
- KDbg
- Valgrind
- strace
1. GNU Debugger(GDB)
Il GNU Debugger, alias 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 popolari, inclusi C, C++, Go e Rust. Funziona anche su molte diverse architetture CPU, come x86, x86-64, ARM, PowerPC, SPARC e MIPS.

Installa GDB utilizzando questi comandi:
In distribuzioni basate su Ubuntu/Debian:
sudo apt install gdbIn distribuzioni Fedora/RHEL:
sudo dnf install gdbIn distribuzioni basate su Arch:
sudo pacman -S gdbFinché compili utilizzando GCC con simboli di debug, puoi seguire le istruzioni di un programma mentre viene eseguito digitando s. Digitando r eseguirai il tuo programma attraverso il debugger. Per avviare GDB con il programma caricato, basta digitare gdb nel tuo terminale seguito dal percorso del programma.
Una volta dentro, digitando help otterrai un catalogo ben organizzato che spiega tutto ciò che puoi fare con questo debugger all-powerful!
2. Data Display Debugger (DDD)
Se armeggiare con i comandi non fa per te, ma ami comunque le funzionalità che GDB ha da offrire, DDD ti dà un’interfaccia grafica semplice che fornisce tutte le sue funzionalità in un’interfaccia punta-e-clicca. È il quintessenziale GUI del debugger Linux.

L’interfaccia utente potrebbe sembrare un po’ spoglia, ma è potente quanto qualsiasi altro debugger. La differenza qui è che ottieni il debugger iconico di GNU con un’interfaccia grafica!
Per installarlo:
In distribuzioni basate su Ubuntu/Debian:
sudo apt install dddIn distribuzioni Fedora/RHEL:
sudo dnf install dddIn distribuzioni basate su Arch:
yay -S dddQualsiasi distribuzione basata su Arch dovrà utilizzare un AUR helper, poiché DDD non esiste nei suoi repository ufficiali. In alternativa, puoi installare DDD su un sistema basato su Arch senza un AUR helper:
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/ddd.git
cd ddd
makepkg -si3. LLDB
LLDB è parte del progetto LLVM. La suite LLVM ha guadagnato popolarità, grazie al suo flusso di lavoro efficiente. È anche diventato il debugger predefinito per Xcode di macOS e Android Studio. Alcune delle principali funzionalità di LLDB includono il supporto per varie integrazioni di compilatori e il debugging remoto. Supporta i linguaggi C (C, C++ e Objective-C).

Per coloro che già conoscono i comandi di base di GDB, LLDB sembrerà familiare. Scrivendo run o r si avvia il programma e digitando step o s si esegue passo passo attraverso le sue subroutine.
Per installarlo:
In distribuzioni basate su Ubuntu/Debian:
sudo apt install lldbIn distribuzioni Fedora/RHEL:
sudo dnf install lldbIn distribuzioni basate su Arch:
sudo pacman -S lldb4. Delve
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 durante il runtime e manipolare cose come goroutines e stack. Il debugger stesso è scritto in Go, fornendo così un runtime nello stesso ambiente del programma che stai testando.
Delve opera sullo stesso principio di GDB e LLDB salva per il fatto che ha un set di comandi unico che differisce notevolmente dagli altri due. Basta digitare help una volta dentro e avrai un elenco completo di tutte le opzioni di debug che ti offre.
A differenza di debugger più generali per più linguaggi, Delve offre comandi più specifici per Go che ti permettono di approfondire a un livello più granolare la tua applicazione mentre viene eseguita.

Per installarlo:
In distribuzioni basate su Ubuntu/Debian:
sudo apt install delveIn distribuzioni Fedora/RHEL:
sudo dnf install delveIn distribuzioni basate su Arch:
sudo pacman -S delve5. Xdebug
Mentre la maggior parte delle persone impara a dumpare le proprie variabili (conosciuto nelle comunità PHP come “dump & die”) per scoprire cosa c’è di sbagliato in un certo aspetto del loro codice, ci sono momenti in cui hai bisogno di qualcosa di più robusto che possa guidarti attraverso tutte le tue routine. Xdebug offre questo in abbondanza per i programmatori PHP aspiranti e veterani.
È un debugger Linux che analizza il codice PHP riga per riga e mostra esattamente cosa sta succedendo mentre una pagina web viene elaborata. Xdebug funziona anche su diversi IDE, incluso VSCode. Le sue altre funzionalità includono un profiler robusto, un tracciatore di stack e la possibilità di dumpare l’intero segmento di esecuzione.
Per installare Xdebug:
In distribuzioni basate su Ubuntu/Debian:
sudo apt install php-xdebugIn distribuzioni Fedora/RHEL:
sudo dnf install php-xdebugIn distribuzioni basate su Arch:
sudo pacman -S xdebug6. KDbg
KDbg è un debugger GUI per l’ambiente desktop KDE. Poiché funziona come un front-end di GDB, proprio 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 passano attraverso il loro codice, così come un pannello completamente dedicato che mostra cosa sta tenendo ogni registro della CPU. Questo non è affatto facile da visualizzare in uno degli altri debugger trattati qui.
A causa di questo, KDbg è un’ottima scelta per i programmatori di applicazioni native tradizionali, dai principianti che stanno appena iniziando a imparare ai veterani più esperti.

Per installare KDbg:
In distribuzioni basate su Ubuntu/Debian:
sudo apt install kdbgIn distribuzioni Fedora/RHEL:
sudo dnf install kdbgIn distribuzioni basate su Arch:
sudo pacman -S kdbgNota: Se stai utilizzando una distribuzione basata su Ubuntu o Debian e non trovi il pacchetto per kdbg nei repository ufficiali, ecco esattamente cosa devi digitare per compilarlo tu stesso:
sudo apt install build-essential cmake extra-cmake-modules qtbase5-dev libkf5i18n-dev libkf5iconthemes-dev libkf5xmlgui-dev
git clone -b maint https://github.com/j6t/kdbg.git
cd kdbg
cmake .
make
sudo make install7. Valgrind
Valgrind è un debugger di memoria solido 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 profiler. Complessivamente, Valgrind è un’ottima scelta per i professionisti grazie al suo ricco set di funzionalità e varietà di strumenti che monitorano la memoria di un programma mentre viene eseguito.

Per installare Valgrind:
Su distribuzioni basate su Ubuntu/Debian:
sudo apt install valgrindSu distribuzioni Fedora/RHEL:
sudo dnf install valgrindSu distribuzioni basate su Arch:
sudo pacman -S valgrind8. strace
strace è un’utilità per userspace per Unix che consente agli utenti di tracciare chiamate di sistema e segnali direttamente dal terminale.

I programmatori possono utilizzarlo per dumpare stack traces, filtrare le chiamate di sistema, modificare i codici di ritorno, estrarre i descrittori di file e molto altro.
Più importantemente, strace ti consente di collegarti a programmi in esecuzione. Questo ti permette di dare un’occhiata più da vicino a qualsiasi software che esegui sulla tua macchina per imparare di più su cosa potrebbe causare un crash.
Per installare strace:
In distribuzioni basate su Ubuntu/Debian:
sudo apt install straceIn distribuzioni Fedora/RHEL:
sudo dnf install straceIn distribuzioni basate su Arch:
sudo pacman -S straceL’Arsenale Ti Aspetta
Con questi strumenti, puoi esplorare, analizzare e scrutare il tuo codice in modi che in precedenza potrebbero sembrare inaccessibili. Ci potrebbe essere una curva di apprendimento una tantum, ma ne vale sicuramente la pena. Se sei serio riguardo alla programmazione in Linux, imparare a usare i suoi debugger ti farà risparmiare molto più tempo nel lungo periodo.
Ora che hai i migliori debugger Linux, è tempo di trovare le migliori distribuzioni Linux per sviluppatori e programmatori.