Я хочу отладить весь поток Java-программы. В чем разница между F5 (шаг в) и F6 (шаг в) в затмении?
Рассмотрите следующий код с текущим указателем инструкции (строка, которая будет выполняться следующей) в f(x); Строка
в g()
, вызванная строкой g(2)
в main()
:
public class testprog {
static void f (int x) {
System.out.println ("num is " + (x+0)); // <- step into
}
static void g (int x) {
-> f(x); // <----------------------------------- current location
f(1); // <----------------------------------- step over
}
public static void main (String args[]) {
g(2);
g(3); // <----------------------------------- step out of
}
}
Если бы вы сделали шаг в в этот момент вы перейдете к строке println()
в f()
, перейдя к вызову функции.
Если вы перешагнете через в этой точке, вы перейдете к строке f(1);
в g()
, перешагнув через вызов функции.
Еще одной полезной функцией отладчиков является шаг out of или шаг return. В этом случае пошаговый возврат в основном проведет вас через текущую функцию, пока вы не вернетесь на один уровень вверх. Другими словами, он пройдет через f(x)
и f(1)
, затем вернется к вызывающей функции, чтобы закончить в g(3);
в main()
.
Eclipse (по крайней мере, Европа, единственная, которая у меня сейчас под рукой) использует F5 для шага в
, F6 для шаг
и F7 для шаг возврата
.
Вы не можете пройти через детали метода, используя шаг. Если вы хотите пропустить текущую строку, вы можете использовать переход, тогда вам нужно всего лишь один раз нажать F6, чтобы перейти к следующей строке. И если вы считаете, что в методе что-то не так, используйте F5, чтобы изучить детали.
Обычные сценарии при отладке строк кода:
В Eclipse есть и другие расширенные функции отладки, но это основные принципы.
шаг за шагом будет углубляться в вызовы методов
step over просто выполнит строку и перейдет к следующей