5

node.jshelp命令输出以下内容:

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在脚本中一样添加它:

if (foo()) { debugger; }

这可以通过 NodeJS 调试器实现吗?

4

2 回答 2

0

我相信这可以通过使用watchers. 我不太熟悉它的用例或语法,所以我没有任何示例。

文档似乎用变量名描述了这种用法。它还可能取决于我们正在谈论的 node.js 版本。

https://nodejs.org/api/debugger.html#debugger_info

于 2016-04-11T00:18:17.543 回答
0

使用Object.defineProperty. 例如:

function setter () { debugger; }

Object.defineProperty(Math, 'name', { set: setter });

name如果在对象上设置了属性,将添加调试器语句Math

参考

于 2017-08-03T18:50:29.150 回答