13

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

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

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

4

1 回答 1

24

请查看 JetBrains bugtracker 中的相应问题

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

不幸的是,当您使用停止按钮时,您不能在关闭钩子主体中使用断点:这些断点会被默默地忽略。

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

kill -INT <pid>

您的应用程序的进程 ID在哪里pid,可以找到,例如通过以下命令:

ps ax | grep java | grep <MainClassNameYouRun>

在这种情况下,IDEA 将在关闭挂钩的断点处停止。

于 2014-12-19T01:11:30.230 回答