2014-07-09 8 views
6

Podczas debugowania w IntelliJ aplikacji, która rejestruje haki wyłączające, haki zamykające nie są wywoływane, gdy klikam zielony okrągły przycisk "restart", ani jeśli klikam czerwony przycisk "stop". W obu przypadkach wygląda na to, że app-under-debug jest natychmiast wymuszone.Jak mogę uzyskać debugger IntelliJ, aby umożliwić uruchamianie haków zamykających mojej aplikacji?

(Uwaga to nie jest duplikatem How do I stop a processing running in intelliJ such that it calls the shutdown hooks?)

Kiedy „ręcznie” wysłać procesowi debugger sygnał INT z terminalu Mac, oczywiście wtedy moje haki zamykania działają zgodnie z oczekiwaniami. Ale nie byłem w stanie znaleźć żadnych ustawień konfiguracyjnych ani kontroli w IDE, które wywołują pożądane zachowanie.

Odpowiedz

9

Proszę spojrzeć na corresponding issue w urządzeniu bugtracker JetBrains.

Właśnie przetestowałem to na Idea 14.0.2 - Przycisk Stop działa z wdziękiem, tak że haki zamykające są wykonywane.

Niestety, nie można używać punktów przerwania w haczyku zamknięcia podczas używania przycisku Stop: te punkty przerwania są dyskretnie ignorowane.

Jeśli chcesz debugować zamykania kod hak (czyli zatrzymać na pułapki), można bezpiecznie zamykania aplikacja działa w debugowania pomysł poprzez wywołanie polecenia z terminala:

kill -INT <pid> 

gdzie pid jest twój proces aplikacji ID i można znaleźć, na przykład za pomocą następującego polecenia:

ps ax | grep java | grep <MainClassNameYouRun> 

w tym przypadku pomysł będzie zatrzymać na punkty przerwania w hak zamykania.

+1

"Niestety, nie możesz używać punktów przerwania w swoim haczyku" To jest to, po co tutaj przyszedłem. Dzięki. – muttonUp

Powiązane problemy