Что такое шаг, шаг и шаг в Firebug?

Я новичок в FireBug Debugger, кто-нибудь может сказать, что такое шаг, шаг за шагом и выход из него.

Ответ 1

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

Представьте следующий код, который вводится через main() и теперь находится в первой строке bar:

function main() {
   val s = foo();
   bar(s);
}

function foo() {
   return "hi";
}

function bar(s) {
   val t = s + foo(); // Debugger is currently here
   return t;
}

Тогда:

  • Вступим в вызов foo, и текущая строка станет return "hi"; в пределах foo.
  • Шаг за шагом проигнорирует тот факт, что вызывается другой метод, и перейдет к строке return t; (что позволяет быстро увидеть, что оценивается t как).
  • Вывод завершит выполнение оставшейся части метода bar, и элемент управления вернется к последней строке метода main.

Ответ 2

  • Step Into заставит отладчика перейти к следующему вызову функции и сломается там.

  • Step Over покажет отладчику выполнение следующей функции и последующий разрыв.

  • Step Out сообщит отладчику о завершении текущей функции и разломе.

Ответ 3

Короче говоря, step into выводит вас внутрь функции, вызываемой в текущей строке (при условии, что ее вызывается), step out возвращает вас туда, где вы были, когда вы решили step into функцию, а step over просто переходит к следующей строке кода. Например:

window.someFunction = function() {
    var x = 10;    //step over to move to the next line
                   //step out to return to the line after where 'someFunction()' was called
                   //step into not available
    var y = 20;
    return x * y;
};

//set breakpoint here
var x = 7;   //step over to execute this line and move to the 
             //next (step into and step out not available)
x += someFunction();  //step over to move to the next line
                      //step into to move to someFunction() (above)
                      //step out not available
alert(x);    //step over to display the alert
             //step out and (probably) step into not available

Ответ 4

  • шаг в → перейти в подпрограмму и ждать следующего действия
  • step over → перейти через подпрограмму, не ожидая снова
  • выйти → если вы находитесь в подпрограмме, вы оставите ее без ожидания.