Node.js v18.12.1 documentation


Table of contents

Debugger调试器#

Stability: 2 - Stable

Node.js includes a command-line debugging utility. Node.js包含一个命令行调试实用程序。The Node.js debugger client is not a full-featured debugger, but simple stepping and inspection are possible.Node.js调试器客户端不是一个功能齐全的调试器,但简单的步骤和检查是可能的。

To use it, start Node.js with the inspect argument followed by the path to the script to debug.要使用它,请使用inspect参数启动Node.js,后跟要调试的脚本的路径。

$ node inspect myscript.js
< Debugger listening on ws://127.0.0.1:9229/621111f9-ffcb-4e82-b718-48a145fa5db8Break on start in myscript.js:2
1 // myscript.js
> 2 global.x = 5;
3 setTimeout(() => {
4 debugger;
debug>

The debugger automatically breaks on the first executable line. 调试器在第一个可执行行自动中断。To instead run until the first breakpoint (specified by a debugger statement), set the NODE_INSPECT_RESUME_ON_START environment variable to 1.要运行到第一个断点(由debugger语句指定),请将NODE_INSPECT_RESUME_ON_START环境变量设置为1

$ cat myscript.js
// myscript.js
global.x = 5;
setTimeout(() => {
debugger;
console.log('world');
}, 1000);
console.log('hello');
$ NODE_INSPECT_RESUME_ON_START=1 node inspect myscript.js
< Debugger listening on ws://127.0.0.1:9229/f1ed133e-7876-495b-83ae-c32c6fc319c2< Debugger attached. 2 global.x = 5;
3 setTimeout(() => {
> 4 debugger;
5 console.log('world');
6 }, 1000);
debug> next
break in myscript.js:5
3 setTimeout(() => {
4 debugger;
> 5 console.log('world');
6 }, 1000);
7 console.log('hello');
debug> repl
Press Ctrl+C to leave debug repl
> x
5
> 2 + 2
4
debug> next
< world 4 debugger;
5 console.log('world');
> 6 }, 1000);
7 console.log('hello');
8
debug> .exit
$

The repl command allows code to be evaluated remotely. repl命令允许远程评估代码。The next command steps to the next line. next命令将转到下一行。Type help to see what other commands are available.键入help以查看其他可用命令。

Pressing enter without typing a command will repeat the previous debugger command.enter键而不键入命令将重复上一个调试器命令。