SuperAPI AI 工具集

node-inspect-debugger

测试与质量

查看项目

更新于 10-16 07:15

技能介绍

用途:当 console.log 不足以排查问题时,从终端以编程方式驱动 Node.js 内置 V8 inspector,实现真实断点、单步调试、调用栈遍历、局部/闭包作用域查看,以及在暂停帧中执行任意表达式。

两种方式:node inspect 为内置零安装 CLI REPL,适合快速探查;ndb / 通过 chrome-remote-interface 使用 CDP,可从 Node/Python 脚本化,适合批量断点、跨运行收集状态或非交互式调试。资料建议优先使用 node inspect。

主要能力:node inspect 支持 continue、step over/into/out、暂停、按文件或函数设置断点、清除断点、列出断点、backtrace、查看源码上下文、watch 表达式、进入 repl 当前作用域求值、restart、kill 等。可附加到已运行进程:kill -SIGUSR1 <pid> 启用 inspector,再 node inspect -p <pid> 或按 ws URL 附加;启动参数包括 node --inspect script.js、node --inspect-brk script.js、node --inspect=0.0.0.0:9230 script.js,tsx 场景见资料示例。CDP 脚本可设置按 URL 正则与行号的断点、读取作用域属性、评估表达式、恢复执行,并可获取 CPU profile 与堆快照。

适用场景:Node 测试失败需查看中间状态、ui-tui 或 Ink 组件渲染前状态检查、tui_gateway 子进程问题、闭包变量无法用 console.log 访问、附加运行中进程做性能采样。资料明确 _SlashWorker / PTY 子进程属 Python,应改用 python-debugpy。

限制与注意:TS 源码断点行号受 sourcemap 影响,node inspect CLI 不跟随 sourcemap;--inspect 不暂停,附加过晚可能错过首断点;默认端口 9229,多进程注意端口冲突;父进程 --inspect 不传递给子进程,需用 NODE_OPTIONS;暂停时 Ctrl+C 退出不会恢复目标进程;--inspect=0.0.0.0 会暴露任意代码执行,默认应绑定 127.0.0.1。在 agent 终端中运行 node inspect 需 PTY 或后台提交输入。具体安装、配置与验证步骤以资料所述为准。