在NodeJSdebugging器中添加条件断点
node.js help
命令输出以下内容:
debug> help Commands: run (r), cont (c), next (n), step (s), out (o), backtrace (bt), setBreakpoint (sb), clearBreakpoint (cb), watch, unwatch, watchers, repl, restart, kill, list, scripts, breakOnException, breakpoints, version
我可以使用setBreakpoint
添加一个新的断点:
debug> setBreakpoint(12) ...
但是,我可以使它有条件吗? 例如:
*only if `foo() === true`, stop here*
另一种方法是像在脚本中一样添加它:
if (foo()) { debugger; }
这是可能的通过NodeJSdebugging器?
我相信这可以通过使用watchers
来实现。 我不太熟悉它的用例或语法,所以我没有任何例子。
文档似乎用variables名称描述了这种用法。 这也可能取决于我们正在讨论的node.js的版本。
使用Object.defineProperty
。 例如:
function setter () { debugger; } Object.defineProperty(Math, 'name', { set: setter });
如果在Math
对象上设置了name
属性,将会添加一个debugging器语句。
参考
-
MDN:Object.defineProperty
-
不同的列表:使用JavaScript进行高级debugging
-
JavaScript Getters和Setters