В чем разница между Step Into и Step Over в отладчике Eclipse?



Я хочу отладить весь поток Java-программы. В чем разница между F5 (шаг в) и F6 (шаг вперед) в eclipse?

766   5  

5 ответов:

рассмотрим следующий код с указателем текущей инструкции (строка, которая будет выполнена далее) в 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(), входя в вызов функции.

если бы ты сделал шаг over в этот момент Вы перейдете к f(1); в строке g(), перешагнув через вызов функции.

еще одной полезной функцией отладчиков является шаг из или шаг возвращение. В этом случае шаг возврата будет в основном запускать вас через текущую функцию, пока вы не вернетесь на один уровень. Другими словами, он пройдет через f(x) и f(1), а затем вернуться к вызывающей функции, чтобы в конечном итоге на g(3); на main().

затмение (по крайней мере, Европа, которая является единственной, у меня есть под рукой момент) использует F5 на step into,F6 на step over и F7 на step return.

при отладке строк кода, вот обычные сценарии:

  • (Шаг) метод собирается быть вызван, и вы хотите отлаживать в код этого метода, поэтому следующий шаг-войти в этот метод и продолжить отладку шаг за шагом.
  • (Шаг) метод будет вызван, но вы не заинтересованы в отладке этого конкретного вызова, поэтому вы хотите, чтобы отладчик выполнил этот метод полностью как один весь шаг.
  • (Шаг Возврата) вы закончили отладку этого метода шаг за шагом, и вы просто хотите, чтобы отладчик запускал весь метод, пока он не вернется как один полный шаг.
  • (резюме) вы хотите, чтобы отладчик возобновил "нормальное" выполнение вместо пошагового
  • ( Точка Останова Линии) вам все равно, как он туда попал, но если выполнение достигает определенной строки кода, Вы хотите, чтобы отладчик временно приостановил исполнение там, так что вы можете решить, что делать.

Eclipse имеет другие расширенные функции отладки, но это основные принципы.

см. также

шаг в будет копаться в вызовах метода
шаг за будет просто выполнить строку и перейти к следующей

вы не можете пройти через детали метода, используя шаг за шагом. Если вы хотите пропустить текущую строку, вы можете использовать step over, тогда вам нужно только нажать F6 только один раз, чтобы перейти к следующей строке. И если вы думаете, что что-то не так в методе, используйте F5 изучить детали.

Шаг вызывается следующее выражение в текущей выбранной строке, и выполнение приостанавливается в следующей исполняемой строке в вызываемом методе.

Шаг текущая выбранная строка выполняется и приостанавливается на следующей исполняемой строке.

Comments

    Ничего не найдено.