我正在调查在调试JavaScript时立即设置断点的可能性
for (...) {
for (...) {
...
}
// need a breakpoint here
}
这里的问题是断点不能在注释行上切换,需要一个语句。
当debugger
语句添加到行时,会出现另一个问题 - 它不会自动切换到调试器标签。看起来应用程序正在等待,没有任何迹象。
我试图避免添加虚假陈述,因为它们可以被忽略(至于debugger
,至少有一个检查规则来突出它。)
有没有任何技巧可以实现这一目标?可以debugger
语句至少表现得像通常的断点一样吗?
答案 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这样的非编译语言,类似的技术与从源解析的字符串一起使用,但带有注释或括号的行不是真正可执行的。
在我自己的开发者之旅中,这个问题偶尔会让人头疼。它只是调试性质的一部分。我希望你能找到一种能让你感到舒适和安心的编码解决方案。