Intellij Idea使用线程调试



我是Intellij Idea的新手,我觉得它是一个很好的IDE。我把它用于分布式系统项目,(正如你所能想象的)我大量使用线程和并发编程以及超时等工具。

我的问题是,当调试器在断点行上停止时,调试器似乎不会停止时间流。

我会试着更好地解释自己。我有一个future,我用它作为线程任务的超时:如果它在特定时间内没有完成任务,那么出现一个TimeoutException并做一些事情,否则做其他事情。问题是,调试器的超时似乎不会在断点行期间停止,因此程序的行为会因调试器或正常执行而有所不同。

这正常吗?有什么办法解决吗?

试试这个:运行->查看断点->查找断点->第一个复选框(Suspend)。尝试将挂起模式设置为Thread而不是All。因此,只有出现断点的线程才会被挂起,而不是应用程序中的所有线程。或者尝试为此断点禁用Suspend。您可以将一些消息记录到控制台,而不是挂起。查看Log message to consoleLog evaluated expression选项。这是创意12。据我所知,创意14也有同样的选择。

是的,这是正常的,这与任何其他调试器都是一样的。TimeoutException是根据系统中经过的实际时间发生的,不幸的是,没有调试器能够停止时间流。

最新更新