3

我正在 Netbeans 中开发一个 java 项目。我有一个运行 29 次的 for 循环,每次迭代大约需要 1 分钟才能完成。问题出在循环的第 29 次迭代中。有什么方法可以跳过前 28 次迭代并直接转到有问题的迭代?

我知道我可以放置一个条件断点,但这会使调试器跳过迭代,它只是在达到特定迭代时通知我。

请帮忙!否则,这将花费大量时间来调试!

4

3 回答 3

3

您可以使用Java Platform Debugger Architecture之类的东西。这可能会有所帮助。另一方面,你可以这样做:

for (int i = 0; i < ...; i++)
{
    if (i == 28)
    {
         System.out.println("Line Found"); //put breakpoint here
    }

    //remainder of the code.
}

这应该允许您在循环的第 29 次执行时触发断点,然后您可以使用调试器提供的步进函数来检查第 29 次迭代的代码。

我从未使用过 JPDA,即使我使用过,我认为最简单直接的解决方案是执行类似于上述代码的操作。

于 2012-07-20T06:54:00.493 回答
1

您可以在循环中放置一个临时代码行,并在其上放置一个断点:

if (i=29) {
    // Put a breakpoint on this line (only hit if i=29)
}
于 2012-07-20T06:53:04.150 回答
0

更改循环条件。

for (int index = 27; index < 28; index++) {

    ...

}
于 2012-07-20T06:48:51.320 回答