Chrome的开发工具或Firebug中是否存在"设置下一个语句"功能?

Šim*_*das 44 javascript debugging firebug google-chrome-devtools

IE的开发工具,更具体地说是它的JavaScript调试器,提供了"Set next statement"命令,使您可以指定下一个应该执行的语句.这样,您可以有效地跳过函数的某些部分,甚至(再次,有效地)提前从函数返回.

所以,对于这个功能......

function test () {
    alert(1);
    alert(2);
    alert(3);
}
Run Code Online (Sandbox Code Playgroud)

如果我们在第一个警报上设置断点,然后调用该函数,我们可以执行第一个警报(F10),然后右键单击第三个警报并选择"设置下一个语句".现在,如果我们按F10,将执行第三个警报,因此,有效地,跳过了第二个警报.

(测试在IE 这里:---打开IE与F12工具,切换到"脚本"选项卡,设置断点,按"开始调试"按钮,必要时刷新页面)

我喜欢这个"set next statement"功能.但是,我没有在Chrome的开发工具或Firebug中注意到它.这些调试器中是否存在此功能?

Pau*_*ish 37

虽然Chrome DevTools没有"设置下一个语句",但您可以通过在断点处暂停时编辑JavaScript来更明确地定义下一个语句.

我为您制作了一个简短的截屏视频,以展示Chrome DevTools Live Edit + Breakpoint Debugging.

实质上:在断点处,通过单击"脚本"面板并进行更改来实时编辑脚本.按cmd+ s保存.然后通过其新的更改来浏览该代码.远比绕过代码更强大,你也可以添加新的功能.

  • 保罗,有没有想过从一个非常好的调试器中添加这个明显的遗漏?主要用途是重新运行具有不同数据的代码块,并进入不按预期工作的块.更改代码是在_after_调试完成的.可能需要几分钟的工作才能到达断点,并且不得不重复这些步骤才能回到断点,浪费了大量的时间.自QuickBasic以来,Microsoft调试器已经具有此功能.自从Visual Studio调试器系列中至少VB5(17年前)以来,"设置下一个语句"甚至已启用了拖放功能. (10认同)
  • @PaulIrish今天仍然是最好的解决方案吗?我看到很多用例:如果你想跳过一些代码行,当你想重新运行*n*最后一行时,你想要落入一个*else*语句,其中代码应该进入*if*一,当你动态改变一个物体的属性并想要用新值重新运行最后一行时,依此类推......代码编辑非常酷,但对于这个"GOTO"功能imho看起来有点过分,并不像将"下一个指令光标"拖放到新位置那么快.此外,这将补充"重新启动框架"真棒功能:) (6认同)
  • 感谢您的截屏视频:)是的,我知道Chrome的内联代码编辑(我看过你去年所做的演讲,你介绍过它).这是一个杀手级功能,可以用于各种事情 - 例如,我在[我的其他问题](http://stackoverflow.com/q/10229996/)中提到的早期退出功能.但是,我想最终在Chrome中看到"设置下一个声明".(Ctrl + S将重新运行该函数,我可能会发现自己处于函数中间,我*不想再次重新运行整个函数,但仍想跳过一个或多个语句.) (5认同)
  • @PaulIrish一个主要的用例是当你运行一行代码并需要再次检查它而不重新运行整个执行时.我一直在Visual Studio中使用此功能来帮助确定错误发生的位置. (2认同)
  • 是的。我同意这应该存在。如果我们在脚本中设置多个 ```debugger``` 语句,当解析器通过每个后续语句时,能够在每个语句上暂停会很有帮助。由于它现在存在,它只会在第一个 ```debugger``` 语句上暂停,如果我恢复执行,它将跳过所有后续的调试器。 (2认同)