6 strumenti di debug Java che dovresti conoscere

, Author

Di Anna Monus | Posted Aug 15, 2018| 7 min. (1389 parole)

Questo articolo è stato aggiornato l’ultima volta nel gennaio 2020

In un mondo ideale, i bug non raggiungerebbero mai la produzione. Ma gli errori del software sono una parte inevitabile della vita di uno sviluppatore. Gli strumenti di debug Java esistono per aiutarci a risolvere gli errori più velocemente, in modo da poter continuare a fare ciò che ci riesce meglio.

Questa lista di strumenti di debug Java vi aiuterà a valutare rapidamente le vostre opzioni in modo da poter trovare il migliore per il lavoro.

Raygun Crash Reporting

Raygun è uno strumento di debugging Java

Una delle cose più difficili del debugging è che non sempre sai quali errori i tuoi utenti stanno riscontrando. Raygun Error Monitoring ha tutto ciò di cui hai bisogno per scoprire bug, errori e crash che accadono in produzione e non solo.

Raygun4Java ti permette di inviare eccezioni da desktop e console Java e applicazioni Scala per default. È possibile inviare tutte le eccezioni alla dashboard di Raygun in modo da poter vedere una diagnosi dettagliata per ogni errore, comprese le tracce complete dello stack, i dati relativi ai nomi di metodi, funzioni e classi, e altro ancora.

L’installazione e la configurazione non richiedono più di qualche minuto. Raygun può elaborare qualsiasi oggetto che eredita dalla classe Throwable. Caratteristiche avanzate come Breadcrumbs, Filters, e Custom Tags rendono il processo di debug più facile.

Eclipse

Eclipse è uno strumento di debug Java

Eclipse è un popolare IDE open-source usato per lo sviluppo Java, ma ha anche plugin per altri linguaggi come PHP, Python, Ruby e C#. La piattaforma Eclipse è dotata di funzioni avanzate di debug che aiutano a ispezionare il codice durante l’esecuzione, rendendolo uno strumento completo. Un grande vantaggio è che il flusso di lavoro di Eclipse è conveniente perché si può usare la stessa piattaforma sia per lo sviluppo che per il debug.

Una delle migliori caratteristiche di Eclipse è la prospettiva di debug, che mostra le informazioni di debug rilevanti fianco a fianco, come variabili, punti di interruzione, thread e stack di chiamate.

Con Eclipse, puoi anche sospendere e riprendere i thread, passare attraverso l’esecuzione del programma, ispezionare i valori e valutare le espressioni.

NetBeans

NetBeans è uno strumento di debug Java

NetBeans è un altro IDE gratuito e open-source. Come Eclipse, le funzionalità di debug sono integrate nella piattaforma, quindi è sufficiente scaricare l’IDE per ottenere lo strumento di debug.

NetBeans è disponibile in diversi pacchetti di download; per Java, avrete bisogno o dell’edizione Java SE o Java EE. Quest’ultima ha anche il supporto per HTML5, JavaScript e i server GlassFish e Tomcat, quindi è una scelta migliore per un lavoro di sviluppo più serio.

Il Debugger di NetBeans ha molte caratteristiche simili a Eclipse. Infatti, entrambi sono eccellenti strumenti di debug per ispezionare il codice sorgente e identificare problemi come perdite di memoria e problemi di concorrenza. NetBeans permette di impostare punti di interruzione e punti di interruzione condizionali, passare attraverso il codice, cambiare thread e monitorare l’esecuzione in tempo reale.

NetBeans fornisce anche la comoda funzione Visual Debugger in modo da poter eseguire il debug degli elementi visivi delle vostre applicazioni Java e JavaFX GUI. Con il debugger visivo, potete aggiungere ascoltatori alle azioni GUI, visualizzare le proprietà dei componenti e la gerarchia dei componenti, e localizzare il codice sorgente.

Se usate NetBeans, avete anche accesso allo strumento integrato NetBeans Profiler. Con il profiler, puoi controllare l’uso della memoria, le prestazioni della CPU, gli stati dei thread e altre caratteristiche della tua applicazione Java. Queste caratteristiche lavorano insieme per aiutarti a ottimizzare la velocità e l’uso della memoria e ridurre l’overhead.

Come NetBeans è stato acquisito dalla Apache Software Foundation all’inizio del 2018, puoi aspettarti più integrazioni e funzionalità estese in futuro – soprattutto perché Apache ospita già molti dei progetti Java, dallo strumento di costruzione Maven al server Tomcat.

IntelliJ IDEA

IntelliJ IDEA è uno strumento di debug Java

Oltre a Eclipse e NetBeans, IntelliJ IDEA è il terzo IDE che gli sviluppatori Java citano di solito quando si chiede loro quale IDE usano. Sviluppato da JetBrains, IntelliJ IDEA ha sia una comunità open-source che un’edizione commerciale a pagamento. È principalmente un IDE Java, ma è possibile utilizzarlo anche con altri linguaggi JVM come Groovy, Kotlin e Scala. L’edizione commerciale supporta anche molti framework JVM e non-JVM, come Spring, Java EE, Play, Grails, GWT e Vaadin. Meglio ancora, entrambe le edizioni sono dotate di supporto per lo sviluppo di Android – ottimo se si stanno eseguendo più progetti. Proprio come i debugger IDE menzionati sopra, IntelliJ IDEA include anche un debugger Java integrato che funziona out-of-the-box.

IntelliJ IDEA ha tutte le caratteristiche standard di debugging che ci si aspetta da uno strumento di debugging best-in-class. IntelliJ IDEA ti permette di:

  • Creare e configurare breakpoints e watchpoints
  • Valutare le espressioni
  • Mettere in pausa e riprendere la sessione di debugger
  • Esaminare i thread sospesi
  • Passare il codice sorgente
  • Analizzare l’uso della memoria
  • … E altro ancora

Puoi anche usare IntelliJ IDEA per eseguire il debug delle applicazioni Java da remoto.

Il debug in linea è la caratteristica più interessante e unica di IntelliJ IDEA. Il debugger inline visualizza i valori delle variabili all’interno del codice, proprio accanto alla riga in cui sono stati utilizzati. Ogni volta che il valore della variabile cambia, il debugger inline lo evidenzia con un colore diverso. Per controllare i valori, non c’è bisogno di spostarsi nella finestra di debug o passare il mouse su ogni variabile una per una come con Eclipse e NetBeans.

Visual Studio Code

Visual Studio Code è uno strumento di debug Java

Non è sempre necessario utilizzare un IDE per il debug delle applicazioni Java. L’editor di codice sorgente multipiattaforma di Microsoft, Visual Studio Code rende anche possibile il debug Java attraverso l’estensione Debugger for Java.

Se usate comunque Visual Studio Code per la modifica del codice e avete bisogno di uno strumento di debug leggero e facile da usare per il vostro flusso di lavoro di sviluppo Java, Visual Studio Code è una grande scelta. Anche se non ha molte caratteristiche avanzate come i debugger IDE, conosce tutto ciò di cui avete bisogno per una sessione di debug veloce.

Il debugger Java di Visual Studio Code è basato su Java Debug Server che estende un’altra estensione di Visual Studio Code chiamata Language Support for Java di Red Hat.

Il debugger di Visual Studio Code permette di:

  • Effettuare il debug locale e remoto
  • Impostare breakpoint condizionali e logpoint
  • Passare attraverso il codice sorgente
  • Inspezionare e guardare le variabili
  • Vedere le chiamate stack
  • Esegui thread multipli
  • Valuta le espressioni
  • Usa la sostituzione del codice a caldo

L’estensione debugger di VS Code ha molte opzioni di configurazione che puoi controllare nella documentazione.

Il debugger Java (jdb)

JDB è uno strumento per il debug di Java

Se non puoi (o non vuoi) usare un software esterno per il debug di Java, è anche possibile fare il debug delle applicazioni Java dalla riga di comando. Il Java Debugger (jdb) è un semplice debugger a riga di comando fornito da Oracle. È l’equivalente del GNU Debugger (gdb) per la Java Virtual Machine. Il Java Debugger è incluso nel Java SE Development Kit, quindi se hai il JDK installato sulla tua macchina, non hai bisogno di fare altro. Potete avviare il debugger con il comando jdb e accedere alla lista dei comandi usando il comando help.

Il debugger Java è, infatti, una dimostrazione della Java Platform Debugger Architecture (JDPA). JDPA è un insieme di tre interfacce: JVM TI (Java Virtual Machine Tools Interface), JDWP (Java Debug Wire Protocol) e JDI (Java Debug Interface). JDPA è un’architettura di debug che fornisce agli sviluppatori strumenti per creare le proprie applicazioni di debugger – jdb è solo uno dei possibili usi di JDPA.

Il debugger jdb permette di eseguire sessioni di debug approfondite nella riga di comando. Con jdb debugger, è possibile:

  • Listare, sospendere, e riprendere i thread
  • Valutare le espressioni
  • Stampare tutte le informazioni sugli oggetti
  • Impostare punti di interruzione
  • Guardare i campi
  • Tracciare le chiamate ai metodi
  • Passo attraverso il codice
  • Permettere e prevenire la garbage collection di un oggetto

Un debugger a riga di comando non è la scelta migliore per il lavoro di sviluppo quotidiano a causa della sua complessità. Tuttavia, ha un vantaggio: la portabilità. È possibile impostarlo su un server senza troppi problemi, poiché non è necessario collegare il server a un debugger IDE remoto. Tutto questo rende jdb uno strumento ideale per la risoluzione rapida dei problemi, che è importante in un ambiente di produzione.

Quale strumento di debug Java è meglio per il tuo progetto?

Il debug di Java non deve essere una sfida. Usando uno di questi strumenti di debug renderà il processo di debug molto più veloce. Ogni caso d’uso sarà diverso, ma valutare le tue opzioni ti aiuterà a scegliere lo strumento giusto per il tuo progetto.

Il debug di Java è più facile quando sai dov’è l’errore! Raygun Crash Reporting for Java aiuta gli sviluppatori a individuare, diagnosticare e risolvere i problemi con maggiore velocità e precisione. Fai una prova gratuita di 14 giorni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.