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

Pau*_*aul 658 javascript debugging google-chrome breakpoints

我想强制Chrome调试器通过代码中断,或者使用某种类似的注释标记console.break().

xn.*_*xn. 1122

您可以debugger;在代码中使用.如果开发人员控制台已打开,则执行将中断.它也适用于萤火虫.

  • 计时器技巧常见吗?验证/理由? (30认同)
  • @ScottyG MDN不那么闪亮,更有用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/debugger (14认同)
  • 一个很好的技巧是在几秒钟后触发调试器:`setTimeout(function(){debugger;},3000);` (8认同)
  • 这非常有帮助.另请注意,所有主流浏览器都支持`debugger;`.有关更多信息,请访问:http://www.w3schools.com/jsref/jsref_debugger.asp (4认同)
  • @JustusEapen问题是Javascript是单线程的,所以它不能中断正在运行的代码。 (2认同)

Pro*_*one 25

您也可以使用debug(function),打破function被叫时间.

命令行API参考:debug

  • 非常好 - 目前似乎只是Chrome,但这仍然是我的主要平台.现在我只需要记住停止调用我的全局调试标志"debug"... (2认同)

And*_*ija 16

正如其他人已经说过的那样,debugger;是要走的路.我写了一个小脚本,您可以在浏览器中使用命令行在函数调用之前设置和删除断点:http: //andrijac.github.io/blog/2014/01/31/javascript-breakpoint/


Flo*_*ine 7

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

截图:

chrome中断点的屏幕截图

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

  • 这不回答问题,他希望能够在代码*中做到* (40认同)
  • xn.:"这是我的答案的照片,当时它只是一个0票的小宝贝.现在它们都长大了." (37认同)
  • 如果使用Ajax调用加载JS脚本,则不会在此处显示,因此需要在代码中使用断点. (3认同)
  • @Petruza开发工具提供了"XHR断点"选项卡. (3认同)

Cir*_*四事件 7

debugger 是EcmaScript保留的关键字,并且自ES5起提供了可选的语义

其结果是,它不仅可以在Chrome中使用,但也Firefox和Node.js的通过node debug myscript.js.

标准说:

句法

DebuggerStatement :
    debugger ;
Run Code Online (Sandbox Code Playgroud)

语义

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

生产DebuggerStatement:debugger; 评估如下:

  1. 如果实现定义的调试工具可用并启用,那么
    1. 执行实现定义的调试操作.
    2. 让result为实现定义的Completion值.
  2. 其他
    1. 让结果为(正常,空,空).
  3. 返回结果.

ES6没有变化.