Intellij Idea 调试线程
Intellij Idea debug with thread
我是 Intellij Idea 的新手,我觉得它很好 IDE。我将它用于分布式系统项目并且(如您所想)我大量使用线程和并发编程以及超时等工具。
我的问题是,当调试器在断点行停止时,调试器似乎没有停止时间流。
我会尝试更好地解释自己。我有一个 future
用作线程任务的超时:如果它在特定时间内没有完成任务,则出现 TimeoutException
并做一些事情,否则做其他事情。问题是,对于调试器,此超时似乎不会在断点行期间停止,因此程序的行为因调试器或正常执行而异。
有那么正常吗?有什么办法可以解决吗?
是的,这是正常的,并且这适用于任何其他调试器。 TimeoutException
根据系统中实际流逝的时间发生,不幸的是没有调试器能够停止时间的流动。
试试这个:运行 -> 查看断点 -> 找到你的断点 -> 第一个复选框 (Suspend
)。尝试将挂起模式设置为 Thread
而不是 All
。因此只有发生断点的线程才会被挂起,而不是应用程序中的所有线程。或者尝试禁用此断点的 Suspend
。您可以将一些消息记录到控制台,而不是暂停。查看 Log message to console
或 Log evaluated expression
选项。这是针对想法 12 的。据我所知,想法 14 具有相同的选项。
我是 Intellij Idea 的新手,我觉得它很好 IDE。我将它用于分布式系统项目并且(如您所想)我大量使用线程和并发编程以及超时等工具。
我的问题是,当调试器在断点行停止时,调试器似乎没有停止时间流。
我会尝试更好地解释自己。我有一个 future
用作线程任务的超时:如果它在特定时间内没有完成任务,则出现 TimeoutException
并做一些事情,否则做其他事情。问题是,对于调试器,此超时似乎不会在断点行期间停止,因此程序的行为因调试器或正常执行而异。
有那么正常吗?有什么办法可以解决吗?
是的,这是正常的,并且这适用于任何其他调试器。 TimeoutException
根据系统中实际流逝的时间发生,不幸的是没有调试器能够停止时间的流动。
试试这个:运行 -> 查看断点 -> 找到你的断点 -> 第一个复选框 (Suspend
)。尝试将挂起模式设置为 Thread
而不是 All
。因此只有发生断点的线程才会被挂起,而不是应用程序中的所有线程。或者尝试禁用此断点的 Suspend
。您可以将一些消息记录到控制台,而不是暂停。查看 Log message to console
或 Log evaluated expression
选项。这是针对想法 12 的。据我所知,想法 14 具有相同的选项。