如何从Chrome中的代码设置JavaScript断点?

如何从Chrome中的代码设置JavaScript断点?,javascript,debugging,google-chrome,breakpoints,Javascript,Debugging,Google Chrome,Breakpoints,我想通过代码强制Chrome调试器断行,或者使用某种注释标记,例如console.break()您可以使用调试器在您的代码中。如果开发人员控制台打开,执行将中断。它在firebug中也可以工作。在“脚本”选项卡上,转到代码所在的位置。在行号的左侧,单击。这将设置一个断点 截图: 然后,您将能够在右侧选项卡中跟踪断点(如屏幕截图所示)。这是可能的,并且您可能有很多原因希望这样做。例如,在页面加载开始时调试javascript无限循环,这会阻止chrome developer工具集(或firebu

我想通过代码强制Chrome调试器断行,或者使用某种注释标记,例如
console.break()
您可以使用
调试器在您的代码中。如果开发人员控制台打开,执行将中断。它在firebug中也可以工作。

在“脚本”选项卡上,转到代码所在的位置。在行号的左侧,单击。这将设置一个断点

截图:


然后,您将能够在右侧选项卡中跟踪断点(如屏幕截图所示)。

这是可能的,并且您可能有很多原因希望这样做。例如,在页面加载开始时调试javascript无限循环,这会阻止chrome developer工具集(或firebug)正确加载

见本报告第2节


或者只需在所需的测试点向代码中添加一行包含单词debugger的代码。

正如其他人所说,
debugger是一条路要走。
我编写了一个小脚本,您可以在浏览器的命令行中使用它在函数调用之前设置和删除断点:

设置按钮单击侦听器并调用
调试器

示例

$("#myBtn").click(function() {
 debugger;   
});
演示

有关JavaScript调试的资源


调试器
是EcmaScript保留的关键字,并且自ES5以来提供了可选语义

因此,它不仅可以用于Chrome,还可以用于Firefox和Node.js

委员会:

语法

DebuggerStatement :
    debugger ;
语义学

评估DebuggerStatement产品可能允许实现在调试器下运行时导致断点。如果调试器不存在或不处于活动状态,则此语句没有可观察的效果

生产调试语句:debugger;评估结果如下:

  • 如果实现定义的调试工具可用并已启用,则
  • 执行实现定义的调试操作
  • 让结果为实现定义的完成值
  • 否则
  • 让结果为(正常、空、空)
  • 返回结果

  • ES6中没有更改。

    您还可以使用
    调试(函数)
    ,在调用
    函数时中断

    断点:-

    断点将停止执行,并允许您检查JavaScript值

    检查值后,可以继续执行代码(通常使用播放按钮)

    调试器:-

    调试器;停止JavaScript的执行,并调用调试函数

    调试器语句暂停执行,但不关闭任何文件或清除任何变量

    您也可以将
    debug(functionName)
    设置为调试函数


    调试JavaScript代码的方法有很多种。以下两种方法广泛用于通过代码调试JavaScript

  • 使用
    console.log()
    在浏览器中打印值 安慰(这将帮助您了解某些点的值 (你的代码)

  • 调试器关键字。添加
    调试器到您想要的位置
    调试,然后打开浏览器的开发人员控制台并导航到
    “源”选项卡


  • 有关调试JavaScript代码的更多工具和方法,请参见。

    我不推荐调试器
    如果您只想杀死并停止javascript代码,因为
    调试器
    将暂时冻结javascript代码,而不是永久停止它

    如果您希望在命令下正确终止和停止javascript代码,请使用以下命令:

    throw new Error(“出现此错误消息是因为我放置了它”)

    此要点


    如果您想在提交时删除
    调试器
    断点

    您是否尝试过
    调试器或仅在开发人员工具栏中使用常规断点?您的意思是从代码本身设置断点,而不是使用开发人员工具中的脚本监视程序设置断点?或者更好:。不是重复。“在Chrome中”和“在代码中”是两件不同的事情,这个问题适用于许多非XHR场景。是其他问题中的1个答案回答了此问题,但其他答案不适用。我在谷歌上搜索了“从代码chrome设置javascript断点”,这是第一个结果,而另一个问题甚至没有出现在第一页上。这个问题的可能重复并没有回答这个问题,他希望能够在代码中完成。如果你用Ajax调用加载JS脚本,它将不会显示在这里,因此需要在代码中设置断点。@FlorianMargaine,不再有“脚本”选项卡。请更新图像。在一些框架中,比如Drupal,JS会添加一个破坏缓存的查询字符串后缀。如果刷新缓存,它通常会更新此后缀,该后缀可以清除您在上一次加载时设置的所有断点。一个很好的技巧是在几秒钟后触发调试器:
    setTimeout(function(){debugger;},3000)这非常有用。另请注意
    调试器。有关详细信息:@ScottyG MDN不那么闪亮,更有用:@JustusEapen的问题是Javascript是单线程的,所以它不能中断正在运行的代码。@ScottyG是一个标准,它是一个保留语句,具有实现定义的效果:在单击处理程序中设置断点,可能不是什么行动wanted@PeterV如果我只是试图将代码打开到一个靠近我正在调试的代码块的地方,我会发现它很有用。。。但我不想一直调试。。。但是是的,如果只是为了打开调试器。。。然后有一个按键。非常好-似乎只有Chrome在这个时候,但这是我的主要平台无论如何。现在我只需要记住t
    
    Example:-
    function checkBuggyStuff() {
      debugger; // do buggy stuff to examine.
    };