如何让 IntelliJ 调试器允许应用的关闭挂钩运行?

在 IntelliJ 中调试注册关闭挂钩的应用时,如果我单击绿色的“重新启动”圆形箭头按钮,也不会单击红色方块的“停止”按钮,则不会调用关闭挂钩。在这两种情况下,调试中的应用似乎都会立即被强制终止。

(请注意,这不是如何停止在 intelliJ 中运行的处理,以便它调用关闭挂钩的副本?)

当我“手动”向调试器进程发送来自Mac终端的INT信号时,当然,我的关机钩子会按预期运行。但是,我无法在 IDE 中发现任何引起所需行为的配置设置或控件。


答案 1

请查看 JetBrains 错误跟踪器中的相应问题

我刚刚在Idea 14.0.2上测试了 - 停止按钮正常工作,以便执行关闭钩子。

遗憾的是,使用“停止”按钮时,不能在关机挂钩正文中使用断点:这些断点将被静默忽略。

如果您需要调试关闭钩子代码(即在断点处停止),您可以通过从终端调用命令来正常关闭在IDEA调试中运行的应用程序:

kill -INT <pid>

其中 是应用程序的进程 ID,可以找到,例如通过以下命令:pid

ps ax | grep java | grep <MainClassNameYouRun>

在这种情况下,IDEA将在关机钩子中的断点处停止。


答案 2