2016-06-16 30 views
7

Sto eseguendo il debug di una normale applicazione Java, senza GUI, solo un sacco di calcoli e ~ 5 chiamate nello stack per il thread principale quando si verifica il problema. Fondamentalmente continua a dire "Raccolta dati" nell'orologio a variabili locali.Il debugger IntelliJ si blocca

enter image description here

Così, invece di andare passo dopo passo ho provato ad aggiungere un punto di interruzione immediatamente dopo un premere "Riprendi". Ora dice "Attesa fino al completamento dell'ultimo comando di debugger". enter image description here

Qualcuno ha avuto questo problema prima? Cambiare il debugger è l'unico modo per capirlo?

+0

il debug di un'applicazione in esecuzione sulla macchina o il debug remoto di un'applicazione su un'altra macchina? – Kirby

+0

@Kirby Sto eseguendo il debug sul mio computer locale fisico –

+0

Ho già visto il problema con il debug remoto in cui la macchina remota ha una connessione di rete non valida. Non l'ho mai provato per il debug di un'applicazione in esecuzione localmente in IntelliJ. Sembra che qualcosa sia in conflitto con il socket di debug. Forse hai fatto funzionare l'applicazione due volte? Forse hai eseguito il debug remoto, chiuso il debugger, quindi l'hai riaperto? – Kirby

risposta

8

On IntelliJ (2017/01/04 Community Edition), il seguente ha risolto il problema per me:

  • File-> Impostazioni
  • Digitare "toString"
  • Naviga per costruire, Esecuzione, Deployment -> Debugger-> dati Views-> Java
  • Trovare il " 'toString()' Attiva la visualizzazione oggetto:" casella
  • Deseleziona casella

Rieseguire il debugger.

+0

Grazie, amico! Mi hai salvato il tempo! – Sannek8552

1

Mi sono imbattuto in quello che sembra lo stesso problema. Nel mio caso si trattava di una classe (KafkaStream) nella traccia dello stack di breakpoint con un metodo "cattivo" toString. Il metodo toString blocca e pertanto blocca il debugger. Ho testato il metodo toString nel codice di linea principale e ha bloccato il thread principale (ad esempio questo non è un problema specifico del debugger).

Ecco l'analisi dello stack per il mio thread che ha colpito il punto di interruzione (su una linea che stava solo cercando di testare un attributo booleano della mia classe):

Hung Breakpoint Stacktrace

Intellij fornisce un modo per aggirare per il mio problema Esso consente di ignorare come il debugger rende la classe:

Work Around

Se il problema torna suggerisco di prendere una discarica filo (all'interno o all'esterno del IDE) e vedere che cosa il vostro thread sta facendo.

+0

Scusa per i link sopra (piuttosto che incorporare le immagini direttamente nella risposta), ma, quando ho provato ad aggiungere un punto esclamativo davanti ai link, ho ricevuto il messaggio: "Per pubblicare le immagini hai bisogno di almeno 10 reputazione." –

+0

Apparentemente il problema di KafkaStream è stato risolto in una versione successiva di quella che sto utilizzando: https://github.com/apache/kafka/commit/fe18595492ee91a6a8a796b21c66a682ee9db4a0 –

Problemi correlati