2014-07-09 8 views
6

Durante il debug in IntelliJ un'applicazione che registra i hook di arresto, i ganci di arresto non vengono richiamati se faccio clic sul pulsante circolare "riavvia" verde, né se clicco sul pulsante "stop" del riquadro rosso. In entrambi i casi sembra che l'app-under-debug sia terminata immediatamente.Come posso ottenere il debugger IntelliJ per consentire l'esecuzione degli hook di arresto della mia app?

(Nota: questo non è un duplicato di How do I stop a processing running in intelliJ such that it calls the shutdown hooks?)

Quando ho "manualmente" invia il processo di debugger un segnale INT dal Terminal Mac, naturalmente poi i miei ganci di arresto eseguito come previsto. Ma non sono stato in grado di scoprire impostazioni di configurazione o controlli all'interno dell'IDE che provocano il comportamento desiderato.

risposta

9

Si prega di dare un'occhiata allo corresponding issue nel bugtracker JetBrains.

Ho appena provato che su Idea 14.0.2 - Il pulsante di arresto funziona correttamente, in modo che vengano eseguiti i hook di arresto.

Sfortunatamente, non è possibile utilizzare i punti di interruzione nel corpo del gancio di arresto quando si utilizza il pulsante Stop: questi punti di interruzione vengono ignorati in modo silenzioso.

Se è necessario eseguire il debug di arresto codice gancio (cioè fermarsi su punti di interruzione), si potrebbe con grazia arresto l'applicazione in esecuzione in di debug di IDEA chiamando il comando da terminale:

kill -INT <pid> 

dove pid è la vostra ID processo di applicazione e può essere trovato, per esempio seguente comando:

ps ax | grep java | grep <MainClassNameYouRun> 

in questo caso IDEA si fermeranno sul breakpoint gancio di arresto.

+1

"Sfortunatamente, non è possibile utilizzare i punti di interruzione nel corpo del gancio di chiusura" Questo è il motivo per cui sono venuto qui. Grazie. – muttonUp

Problemi correlati