PhpStorm/WebStorm 中带有调试器语句的即时断点



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

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

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

debugger语句添加到行中时,会出现另一个问题 - 它不会自动切换到调试器选项卡。看起来申请正在等待中,没有任何迹象。

而且我试图避免添加虚拟语句,因为它们可以忽略不计(至于debugger,至少有一个检查规则来突出显示它)。

有什么技巧可以做到这一点吗?debugger语句至少可以像通常的断点一样运行吗?

说到一般问题,只有一个答案,那就是你不想听到的答案:

必须具有断点语句

没有广泛适用的技巧(尽管可能存在一些 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 这样的非编译语言,类似的技术用于从源代码解析的字符串,但带有注释或括号的行并不是真正可执行的。

这个问题在我自己的开发人员旅程中偶尔会抬起丑陋的头。它只是调试性质的一部分。我希望您能找到一种编码解决方案,为您提供舒适和安心。

最新更新