在 IntelliJ 中调试注册关闭挂钩的应用程序时,如果我单击绿色的“重新启动”圆形箭头按钮,也不会单击红色方形的“停止”按钮,则不会调用关闭挂钩。在这两种情况下,调试下的应用程序似乎都会立即被强制终止。
(请注意,这不是我如何停止在 intelliJ 中运行的处理以便它调用关闭挂钩的副本?)
当我“手动”从 Mac 终端向调试器进程发送一个 INT 信号时,当然我的关闭挂钩会按预期运行。但我无法在 IDE 中发现任何会引发所需行为的配置设置或控件。
在 IntelliJ 中调试注册关闭挂钩的应用程序时,如果我单击绿色的“重新启动”圆形箭头按钮,也不会单击红色方形的“停止”按钮,则不会调用关闭挂钩。在这两种情况下,调试下的应用程序似乎都会立即被强制终止。
(请注意,这不是我如何停止在 intelliJ 中运行的处理以便它调用关闭挂钩的副本?)
当我“手动”从 Mac 终端向调试器进程发送一个 INT 信号时,当然我的关闭挂钩会按预期运行。但我无法在 IDE 中发现任何会引发所需行为的配置设置或控件。
请查看 JetBrains bugtracker 中的相应问题。
我刚刚在 Idea 14.0.2 上进行了测试 - 停止按钮正常工作,以便执行关闭挂钩。
不幸的是,当您使用停止按钮时,您不能在关闭钩子主体中使用断点:这些断点会被默默地忽略。
如果您需要调试关闭钩子代码(即在断点处停止),您可以通过从终端调用命令来优雅地关闭在 IDEA 的调试中运行的应用程序:
kill -INT <pid>
您的应用程序的进程 ID在哪里pid
,可以找到,例如通过以下命令:
ps ax | grep java | grep <MainClassNameYouRun>
在这种情况下,IDEA 将在关闭挂钩的断点处停止。