在Eclipse中调试代码时,我遇到了以下问题。有一个 WHILE 循环,可能有大约 10,000 次迭代。因此,在这里使用 Step 并不是一个好主意。因此,我将断点放置在 WHILE 循环之后。但这个 WHILE 循环似乎进入了内部循环。我不知道如何找到导致此问题的正确迭代。有什么方法可以区分代码执行时间长和内部循环吗?我该怎么做才能快速找到代码中此类死锁的地方?
附注该代码在小型数据集上运行良好......
最佳答案
如果您正在寻找死锁,您可以在没有断点的情况下以调试方式运行程序,并等待它死锁,然后停止它。
如果您希望它在特定迭代上停止,您可以添加条件断点,但这可能会使执行速度变慢。
我所做的是将条件添加到代码中,例如
if (i == 10000 && condition)
Thread.yield(); // add break point here.
或者如果你有一个返回错误值的方法,你可以这样做
boolean ok = method();
if (!ok)
method(); // add a break point here so you can see why it fails.
关于java - 在 Eclipse 中调试代码。内循环案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963359/