在Eclipse中进行大量迭代后的循环中的断点

时间:2013-10-07 03:22:29

标签: java c eclipse debugging loops

假设我有以下代码。在调试时,我希望Eclipse在完成100万次迭代后停止。这该怎么做?我不能手动做100万次。

for(int i = 0; i < 10000000; i++) {
    //some code
}

3 个答案:

答案 0 :(得分:12)

你可以把条件断点放在eclipse中:

  1. 设一个断点
  2. 右键单击 - &GT;属性
  3. 启用“条件”复选框
  4. 放入条件代码

    i == 1000000

答案 1 :(得分:4)

在这种情况下,请执行以下操作:

for(int i = 0; i < 10000000; i++)
{
    if(i==1000000){
       // do nothing  ....
       // this is just a dummy place to make eclipse stop after million iterations
       // just put a break point here and run the code until it reaches this breakpoint
       // remove this if condition from your code after you have debugged your problem
    }

    //your code
}

答案 2 :(得分:1)

我知道我已经死了,但是我正在回答@Anarelle在the currently accepted answer关于在没有变量可用时停止的问题。这也回答了原始问题。在Eclipse的条件断点窗口中(在Debug Perspective中),您可以单击命中计数:旁边的复选框,并简单地给出断点应该在其暂停执行之前“触摸”的次数。请注意,这不仅可以在循环之外工作(例如,在我尝试此操作3次之后暂停调试),但它也需要考虑外部循环。例如,在以下代码中,如果我的命中数为20,则i将在命中断点时为6和j 3:

for (int i = 0; i < 100; i++) {
    System.out.println(i);
    for (int j = 2; j < 5; j++) {
        System.out.println(j);
    }
}

一旦断点被​​击中,它将被禁用,直到用户重新启用。换句话说,如果每次重新启用,此功能也可用于检查特定断点的每20次检查。