什么是进入,走出来,并在Firebug跨越?

我是新来的FireBugdebugging器任何人都可以说什么步入,走出去

  • 步入将导致debugging器下降到当前行上的任何方法调用。 如果有多个方法调用,他们将按照执行的顺序访问; 如果没有方法调用,这与step over相同。 这大致相当于遵循解释者所看到的每一个单独的执行路线。
  • 继续前进到当前作用域中的下一行(即转到下一行),而不会下降到任何方法调用。 这通常用于通过特定方法遵循逻辑,而不用担心其协作者的细节,并且可以用于发现在方法中的哪个点违反了期望的条件。
  • 直到下一个“返回”或等价物,即直到控制返回到前面的堆栈帧为止。 当你在这个点/方法中看到所有你需要的东西时,通常会使用这个函数,并且想把这个堆栈冒泡几层到实际使用的值。

想象下面的代码,它通过main()input,现在在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; 行(它可以让你很快看到被评估为什么)。
  • 单步执行将完成剩下的方法的执行,并且控制将返回到main方法的最后一行。
  • Step Into将导致debugging器进入下一个函数调用并在那里打破。

  • Step Over会告诉debugging器执行下一个function,然后中断。

  • Step Out将告诉debugging器完成当前的function,并在它之后中断。

简短的版本是, step into当前行调用函数的内部(假设正在调用一个函数),当您决定step into某个函数时, step out到您所在的位置,然后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 
  • 进入 – >进入子程序并等待下一个动作
  • 跳过 – >跳过子程序而不再等待
  • 走出去 – >如果你在子程序中,你将不再等待