8 dei Migliori Debugger Linux per Ingegneri del Software

Charset=invalidcharsetid 48

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

    1. GNU Debugger(GDB)
    1. Data Display Debugger (DDD)
    1. LLDB
    1. Delve
    1. Xdebug
    1. KDbg
    1. Valgrind
    1. 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.

Dimostrazione di GDB che esegue un programma di test

Installa GDB utilizzando questi comandi:

In distribuzioni basate su Ubuntu/Debian:

sudo apt install gdb

In distribuzioni Fedora/RHEL:

sudo dnf install gdb

In distribuzioni basate su Arch:

sudo pacman -S gdb

Finché 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.

DDD che esegue un programma rudimentale e termina.

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 ddd

In distribuzioni Fedora/RHEL:

sudo dnf install ddd

In distribuzioni basate su Arch:

yay -S ddd

Qualsiasi 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 -si

3. 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).

Debugger Linux Lldb

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 lldb

In distribuzioni Fedora/RHEL:

sudo dnf install lldb

In distribuzioni basate su Arch:

sudo pacman -S lldb

4. 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.

Utilizzando Delve per esaminare specifiche goroutine e thread.

Per installarlo:

In distribuzioni basate su Ubuntu/Debian:

sudo apt install delve

In distribuzioni Fedora/RHEL:

sudo dnf install delve

In distribuzioni basate su Arch:

sudo pacman -S delve

5. 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-xdebug

In distribuzioni Fedora/RHEL:

sudo dnf install php-xdebug

In distribuzioni basate su Arch:

sudo pacman -S xdebug

6. 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.

KDbg che debugga un programma in esecuzione scritto in C.

Per installare KDbg:

In distribuzioni basate su Ubuntu/Debian:

sudo apt install kdbg

In distribuzioni Fedora/RHEL:

sudo dnf install kdbg

In distribuzioni basate su Arch:

sudo pacman -S kdbg

Nota: 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 install

7. 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.

Valgrind che rileva una perdita di memoria in un programma.

Per installare Valgrind:

Su distribuzioni basate su Ubuntu/Debian:

sudo apt install valgrind

Su distribuzioni Fedora/RHEL:

sudo dnf install valgrind

Su distribuzioni basate su Arch:

sudo pacman -S valgrind

8. strace

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

Debugger Linux Strace

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 strace

In distribuzioni Fedora/RHEL:

sudo dnf install strace

In distribuzioni basate su Arch:

sudo pacman -S strace

L’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.