Что означают значки разных останова в Eclipse?


при работе с точками останова в Eclipse я иногда замечаю, что они имеют разные значки / аннотации (маркеры на левой боковой панели). Иногда это просто синий шар, иногда на нем есть галочка, а иногда он пересекается. Что означают все эти аннотации?

5 74

5 ответов:

  • синий шар: обычная точка останова, активная (возможно, с установленным количеством попаданий)
  • пустой шар (т. е. белый): точка останова отключена (снимите флажок в представлении точки останова или disable в контекстном меню)
  • диагональная линия через точку останова: все точки останова были отключены (кнопка skip all breakpoints в режиме останова)
  • вопросительный знак рядом с точкой останова: условие активно для этой точки останова (см. свойства точка останова)

галочка означает, что точка останова была установлена успешно. Я думаю, что это может появиться только тогда, когда вы выполняете удаленную отладку; когда вы добавляете точку останова, она начинается как простой шар, но как только агент JPDA в удаленной системе сказал об этом и подтвердил, что он установлен, тогда он получает галочку.

Я создал пример кода с объяснением inline.

public class Breakpoints {
    int field1; // watchpoint - suspend when field1 is read
    int field2; // watchpoint - suspend when field1 is written
    int field3; // watchpoint - suspend when field1 is read or written

    public void method() {
        int x;
        x = 10; // suspend before this line is executed 
        x = 11; // same as above but this breakpoint is temporarily disabled
        for (int i = 0; i < 100; i++) {
            x = i; // conditional breakpoint - suspend when i==5
        }
    }
}

Eclipse breakpoint icons

после того, как вы выберите Skip All Breakpoints в режиме останова (Window | Show Viev | Debug | Breakpoints), все значки становятся по диагонали пробитыми вот так:

Eclipse breakpoint icons Skip All

добавление к более ранним ответам. Элемент маленький белый c над зеленым шаром значок означает, что точка останова находится на уровне класса.

Class Load Breakpoint

Eclipse Help

Я думаю, что ответ, данный @sleske, объясняет все, кроме :

Синий шар с клещевой: точка останова успешно установлена, потому что ваш исходный код совпадает с байтовым кодом, и управление отладкой достигнет там.

Только Синий Шар : исходный код отличается от байтового кода (может быть, вы используете более старый снимок кода). Контроль никогда не достигнет этой точки останова. Вам придется обновить свои банки, чтобы получить контроль над ними точка прерывания.