跳到正文
cccskills
免费在 GitHub 公开

node-inspect-debugger

Debug Node.js via --inspect + Chrome DevTools Protocol.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md3.5 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Node.js Inspect Debugger

Overview

When console.log isn't enough, drive Node's built-in V8 inspector programmatically from the terminal. Real breakpoints, step in/over/out, call-stack walking, scope dumps, and arbitrary expression evaluation.

Prefer node inspect first. It's always available and the REPL is fast.

When to Use

  • A Node test fails and you need to see intermediate state
  • A Node process crashes or behaves wrong and you want to inspect state
  • You need to inspect a value in a closure that console.log can't reach
  • Perf: attach to a running process to capture a CPU profile or heap snapshot

Don't use for: things console.log solves in under a minute.

Quick Reference: node inspect REPL

Launch paused on first line:

node inspect path/to/script.js
# or with tsx
node --inspect-brk $(which tsx) path/to/script.ts

The debug> prompt accepts:

CommandAction
ccontinue
nnext line (step over)
sstep into
ostep out
sb('file.js', line)set breakpoint
cb('file.js', line)clear breakpoint
watch('expr')watch expression
exec('expr')evaluate in paused frame
backtrace / btshow call stack
list(N)show N lines around current

Scriptable CDP via chrome-remote-interface

For automated debugging (many breakpoints, collect state across runs):

# Install
npm install chrome-remote-interface

# Launch node with inspect
node --inspect-brk=9229 path/to/script.js &

# Attach via script
node -e "
const CDP = require('chrome-remote-interface');
(async () => {
  const client = await CDP({port: 9229});
  const {Debugger, Runtime} = client;
  await Debugger.enable();
  await Runtime.enable();
  Debugger.paused(({callFrames}) => {
    console.log('Paused at:', callFrames[0].location);
    // Inspect scope, evaluate expressions, etc.
  });
  // Set breakpoint
  await Debugger.setBreakpointByUrl({lineNumber: 10, url: 'file:///path/to/script.js'});
  await Debugger.resume();
})();
"

Attaching to a Running Process

# Start with --inspect (no brk = doesn't pause on start)
node --inspect=9229 path/to/server.js

# Attach from another terminal
node inspect localhost:9229

CPU Profile

# Start with inspect
node --inspect path/to/script.js

# In another terminal, capture profile
node -e "
const CDP = require('chrome-remote-interface');
(async () => {
  const client = await CDP({port: 9229});
  const {Profiler} = client;
  await Profiler.enable();
  await Profiler.start();
  // Wait for workload...
  await new Promise(r => setTimeout(r, 10000));
  const {profile} = await Profiler.stop();
  require('fs').writeFileSync('profile.cpuprofile', JSON.stringify(profile));
})();
"

# Load profile.cpuprofile in Chrome DevTools > Performance

Pitfalls

  • --inspect vs --inspect-brk: --inspect doesn't pause; --inspect-brk pauses on first line. Use brk when you need to catch early code.
  • Port conflicts: default port 9229 may be taken. Use --inspect=9230.
  • ESM vs CJS: node inspect works with both, but ESM may show different call stack formatting.
  • Source maps: TypeScript/tsx may show transpiled line numbers. Use --enable-source-maps for accurate mapping.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Structured peer-review of academic papers.

中文简介正在准备中。当前显示原文说明。

HezaoHezao/poirot2512026年7月29日 更新

Dark-themed SVG architecture/cloud/infra diagrams as HTML.

中文简介正在准备中。当前显示原文说明。

HezaoHezao/poirot2512026年7月29日 更新

arxiv

免费

Search arXiv papers by keyword, author, category, or ID.

中文简介正在准备中。当前显示原文说明。

HezaoHezao/poirot2512026年7月29日 更新

Monitor blogs and RSS/Atom feeds via blogwatcher-cli.

中文简介正在准备中。当前显示原文说明。

HezaoHezao/poirot2512026年7月29日 更新

bootstrap

免费

Onboarding conversation to generate a user profile.

中文简介正在准备中。当前显示原文说明。

HezaoHezao/poirot2512026年7月29日 更新

Generate charts: select type, extract data, render image.

中文简介正在准备中。当前显示原文说明。

HezaoHezao/poirot2512026年7月29日 更新

查看 HezaoHezao 的全部技能

报告此技能的问题