Intereting Posts

Точка останова в цикле после большого количества итераций в Eclipse

Предположим, у меня есть следующий код. Во время отладки я хочу, чтобы Eclipse остановился, когда он выполнил 1 миллион итераций. Как это сделать? Я не могу вручную делать 1 миллион раз.

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

Вы можете поставить условную точку разрыва в eclipse:

  1. Поставить точку останова
  2. Правой кнопкой Нажать на> Свойства
  3. Включить «условие» check-box
  4. Положить код условия

    i == 1000000

В этом случае выполните следующие действия:

 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 } 

Я знаю, что я некрополя, но я отвечаю на вопрос @Anarelle о принятом в настоящее время ответе о прекращении, когда нет переменной. Это также отвечает на исходный вопрос. В окне условного прерывания Eclipse (в Debug Perspective) вы можете щелкнуть по флажку рядом с Count Hit: и просто дать несколько раз, чтобы точка останова была «тронута», прежде чем она приостанавливает выполнение. Обратите внимание, что это не только работает за пределами циклов (например, отладка паузы только после того, как я пробовал это действие 3 раза), но также учитывает внешние петли. Например, в следующем коде i будет 6 и j 3, когда точка останова будет удалена, если число попаданий составляет 20:

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

Как только точка останова будет удалена, она будет отключена до повторного включения пользователем. Другими словами, эту функцию можно также использовать для проверки каждые 20 раз, когда ударяется конкретная точка останова, если она снова включается.