什么是 Firebug 中的 step into、step out 和 step over? [复制]
Posted
技术标签:
【中文标题】什么是 Firebug 中的 step into、step out 和 step over? [复制]【英文标题】:What is step into, step out and step over in Firebug? [duplicate] 【发布时间】:2011-07-20 11:39:56 【问题描述】:我是 FireBug Debugger 的新手,谁能说出什么是步入、跨步和退出
【问题讨论】:
嗯,你只是问如何使用调试器?如果是这样,也许试试 developerfusion.com/article/33/debugging/4 。我认为这可能会帮助您了解这个想法。 @Gordon Worley - 你可能错过了这个网站的目的。 【参考方案1】: 步骤 into 将导致调试器下降到当前行上的任何方法调用。如果有多个方法调用,它们会按执行顺序被访问;如果没有方法调用,这与 step over 相同。这大致相当于按照解释器所看到的每个单独的执行行。 步骤 over 继续到当前范围内的下一行(即转到下一行),而不会在途中下降到任何方法调用。这通常用于通过特定方法遵循逻辑,而不用担心其协作者的细节,并且可以用于查找方法中的哪个点违反了预期条件。 步骤 out 继续进行,直到下一个“返回”或等效项 - 即直到控制返回到前一个堆栈帧。这通常用于当您在 this 点/方法上看到了所有您需要的内容,并且想要将堆栈向上冒泡几层到实际使用该值的位置。想象以下代码,它通过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;
然后:
Step into 将进入foo
调用,然后当前行将成为foo
中的return "hi";
行。
跳过将忽略正在调用另一个方法的事实,并将继续执行 return t;
行(让您快速查看 t
的评估结果)。
Step out 将完成 bar
方法的其余部分的执行,控制将返回到 main
方法的最后一行。
【讨论】:
谢谢,您的解释是这里唯一对我有意义的解释。如果我知道“步入”与“正常执行”大致相同,我会更快地理解这个概念。其他两个也一样。 Firebug 在递归过程中显然没有正确退出 - 我发现如果我将几个帧递归到一个函数的深处并且我尝试退出,它会退出所有这些帧而不是一个,这对我来说非常令人沮丧和无益。 Step out 继续直到下一个“return”或等效项不明确。如果当前堆栈帧调用具有返回的另一个函数,它并不总是“下一个”返回... 非常简单。谢谢! 来到这里寻找一个简洁的答案,并找到它。谢谢。【参考方案2】:Step Into 将导致调试器进入下一个函数调用并在那里中断。
Step Over 将告诉调试器执行下一个函数并在之后中断。
Step Out 将告诉调试器完成当前函数并在它之后中断。
【讨论】:
+1 以如此简单但技术性的方式讲述 感谢您明确指出跨步仍然执行下一个函数,它只是没有中断。【参考方案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 into -> 进入子程序并等待下一个动作 跳过->跳过子程序而不再等待 step out -> 如果你在子例程中,你将离开它而不再等待【讨论】:
以上是关于什么是 Firebug 中的 step into、step out 和 step over? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Intellij IDEA调试功能使用总结(step over / step into / force step into/step out等)
这道题固然可以选A 但为何不能选D 明明有短语 step into 意思即为:善待身体是你趋近于精神和情绪健康的
为啥在 Android 应用程序中击中断点后禁用“Step Into (F5)”和“Step Over (F6)”?
转:libc6-dbg libc库调试的时候需要安装该库获得debug information 才能step into