在PhpStorm / WebStorm中使用调试器语句的即时断点

时间:2017-06-16 17:10:50

标签: javascript node.js debugging phpstorm webstorm

我正在调查在调试JavaScript时立即设置断点的可能性

for (...) {
  for (...) {
    ...
  }
  // need a breakpoint here
}

这里的问题是断点不能在注释行上切换,需要一个语句。

debugger语句添加到行时,会出现另一个问题 - 它不会自动切换到调试器标签。看起来应用程序正在等待,没有任何迹象。

我试图避免添加虚假陈述,因为它们可以被忽略(至于debugger,至少有一个检查规则来突出它。)

有没有任何技巧可以实现这一目标?可以debugger语句至少表现得像通常的断点一样吗?

1 个答案:

答案 0 :(得分:1)

谈到一般性问题,只有一个答案,而且是你不想听到的答案:

您必须有断点声明

没有广泛适用的技巧(尽管可能存在一些允许在循环后立即破解的IDE ......很奇怪)

不幸的是,您想要的通常是使用临时/虚拟语句(正是您要避免的那种)

for (...) {
  for (...) {
    ...
  }
  // TODO: editors like Eclipse flag TODO lines so they are not lost in the source forest
  setTimeout(Function.prototype, 10000);
}

这是由于(大多数)调试器如何工作的机制:基本文件和行号在编译代码中存储为调试器信息(提示),然后在调试执行期间与可用源匹配。对于像JS / PHP这样的非编译语言,类似的技术与从源解析的字符串一起使用,但带有注释或括号的行不是真正可执行的。

在我自己的开发者之旅中,这个问题偶尔会让人头疼。它只是调试性质的一部分。我希望你能找到一种能让你感到舒适和安心的编码解决方案。