Agent Skills
返回列表
💻

Node Inspect 调试器

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_ef9e183a/software-development-node-inspect-debugger。

技能介绍

要解决的问题

Node.js 本身自带 inspector,但日常调试经常停在两种尴尬状态:要么得打开浏览器里的 DevTools 界面,在远程机器、容器或 SSH 会话里根本没有 GUI;要么靠 console.log 和 --inspect-brk 手动拼参数,断点管理全靠自己写脚本。当问题出现在异步回调、Promise 链或长驻 worker 里时,栈帧和变量状态稍纵即逝,日志根本追不回来。

核心能力与工作流程

这个技能把 --inspect 与 Chrome DevTools Protocol(CDP)串成一条 CLI 可驱动的链路,具体分几步:

  • 启动注入:为目标进程附加 --inspect 启动参数,让内置 inspector 暴露 CDP 调试端口。
  • 协议接入:通过 CDP 命令行通道连接到目标运行时,不再依赖浏览器 UI。
  • 断点控制:在源码位置设置、启用和移除断点,支持命中后暂停检查。
  • 状态检视:在断点处查看调用栈、局部变量与表达式求值结果。
  • 终端友好:面向 TUI/终端环境组织交互,适合在无图形界面的服务器上直接用。

适用边界与注意点

  • 只覆盖 Node.js 运行时,Python、Go、JVM 等其他语言需配合各自的调试方案(例如同一体系下的 python-debugpy)。
  • inspector 会监听本地端口,远程调试时需注意端口暴露与防火墙策略,避免调试通道被外部访问。
  • 生产进程通常不应开启 --inspect,建议只在开发与排障环境使用。
  • 异步代码、微任务与 worker 线程的暂停时机受事件循环影响,复杂时序下需要结合栈帧反复确认。

使用场景

  • 在 SSH 远程服务器上排查 Node.js 接口无响应,需要按源码行号打断点并查看调用栈。
  • 容器内运行的 Node 服务抛出异常后退出,需在启动时注入 --inspect 并从 CLI 接管调试。
  • 排查 Promise 链中变量被意外改写的位置,需在可疑函数入口暂停并逐帧检查局部变量。
  • Windows/Linux 开发机上使用终端调试长驻 worker,不依赖浏览器 DevTools 界面。

适合人员

  • Node.js 后端工程师:需要在无 GUI 的服务器或容器里定位线上/测试环境的运行时缺陷。
  • 使用 TUI/终端工作流的开发者:希望用 CDP 命令行替代浏览器 DevTools 完成断点调试。
  • 调试 async/Promise 代码的工程师:需要捕获短暂存在的栈帧和变量状态来复现竞态问题。
  • 维护 Node.js 长驻服务的 SRE:需要在不重启进程的情况下按源码位置暂停并检查内部状态。