При работе с точками останова в Eclipse я иногда замечаю, что у них разные значки/аннотации (маркеры на левой боковой панели). Иногда это просто синий шар, иногда он имеет галочку на нем, и иногда он пересекается. Что означают все эти аннотации?
Какие разные значки контрольной точки означают в Eclipse?
Ответ 1
- синий шар: регулярная точка останова, активная (возможно, с набором совпадений)
- пустой мяч (т.е. белый): точка останова отключена (удалите галочку в режиме точки останова или
disable
в контекстном меню) - Диагональная линия через точку останова: все точки останова отключены (кнопка
skip all breakpoints
в режиме точки останова) - вопросительный знак рядом с точкой останова: для этой точки останова действует условие (смотрите в свойствах точки останова)
Ответ 2
Тик означает, что точка останова была успешно установлена. Я думаю, что это может появиться только при удаленной отладке; когда вы добавляете точку останова, она начинается как простой шар, но как только агент JPDA в удаленной системе был проинформирован об этом, и подтвердил, что он установлен, тогда он получает галочку.
Ответ 3
Я создал пример кода с пояснением 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
}
}
}
Как только вы выберете Skip All Breakpoints
в представлении Breakpoints (Window | Show Viev | Debug | Breakpoints
), все значки по диагонали пройдут следующим образом:
Ответ 4
Добавление к более ранним ответам. Маленькая белая c
над значком зеленого шара означает, что точка останова находится на уровне класса.
Ответ 5
Я думаю, что ответ, данный @sleske, объясняет все, кроме:
Синий шар с тиком: точка останова успешно установлена, потому что ваш исходный код соответствует байтовому коду, и контроль отладки достигнет его.
Только синий шар: исходный код отличается от байтового кода (может быть, вы используете старый снимок кода). Контроль никогда не достигнет этой точки останова. Вам нужно будет обновить JAR, чтобы получить контроль над этими точками останова.