About rspack-debugging
rspack-debugging is a skill for diagnosing Rspack crashes and deadlocks with LLDB and debug-symbol-enabled packages. It provides scenario-specific workflows for capturing backtraces and preserving debug artifacts in the project.
Key features
- 01LLDB-based crash and deadlock diagnosis
- 02Debug package setup and restoration
- 03Guides for HMR and build failures
- 04Coredump and stuck-process workflows
- 05Saving backtraces to project artifacts
Use cases
- 01Investigating a repeatable HMR crash
- 02Capturing intermittent build failures
- 03Analyzing a stuck Rspack process
- 04Identifying asynchronous deadlocks
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ rstackjs/ agent-skills --skill rspack-debuggingAfter installing, type/rspack-debuggingin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/guide_a_hmr_crash.mdguide_b_build_crash.mdguide_c_attach_to_stuck_process.mdguide_d_coredump_analysis_dev.mdguide_e_coredump_analysis_build.mdguide_f_async_deadlock.mdlldb.mdscripts/setup_debug_deps.cjsDetails
From the project READMERspack debugging
Overview
This Skill guides you on how to capture the underlying crash state of Rspack (which is based on Rust). By using the LLDB debugger and Rspack packages with debug symbols, we can obtain detailed stack backtraces, which are crucial for pinpointing issues. The guides focus on non-interactive, automated debugging to easily capture backtraces.
Preparation
Before starting, please ensure your environment meets the requirements.
-
Install LLDB: You must install the LLDB debugger.
- macOS: Run
xcode-select --install - Linux: Install the
lldbpackage (e.g.,apt-get install lldb) - Detailed guide: references/lldb.md
- macOS: Run
-
Replace Debug Packages: Production packages like
@rspack/corehave debug symbols stripped. They must be replaced with the@rspack-debug/*series packages to see useful stack information.Automatic Replacement Script:
Resolve the bundled
scripts/setup_debug_deps.cjsrelative to the Skill root while keeping the working directory in the user's project, then run:node "<skill-root>/scripts/setup_debug_deps.cjs"Running the above script will automatically add
pnpm.overridesconfiguration topackage.json, pointing Rspack packages to their corresponding Debug versions. Afterwards, please be sure to runpnpm installto update dependencies.
Debugging workflows
Identify your specific scenario and follow the corresponding linked guide.
Detailed guides
Detailed guides
Guide A: crash during HMR
Scenario: Stable Crash/Deadlock during DevServer HMR. Read Guide: references/guide_a_hmr_crash.md
Guide B: crash during build
Scenario: Stable Crash/Deadlock during Build (or Unstable Build Crash that is frequent enough). Read Guide: references/guide_b_build_crash.md
Guide C: attach to stuck process
Scenario: Unstable Deadlock during Build (happens randomly). Read Guide: references/guide_c_attach_to_stuck_process.md
Guide D: coredump analysis (Dev)
Scenario: Unstable Crash during DevServer HMR (hard to catch interactively). Read Guide: references/guide_d_coredump_analysis_dev.md
Guide E: coredump analysis (Build)
Scenario: Unstable Crash during Build. Read Guide: references/guide_e_coredump_analysis_build.md
Guide F: async deadlock identification
Scenario: Unstable Async Deadlock. Main thread stuck in uv_run.
Read Guide: references/guide_f_async_deadlock.md
Saving debug artifacts
Critical Instruction for Agents: When you successfully obtain a backtrace or a tracing log, you MUST save it to a local file in the user's project directory so it is preserved after the session.
- Create Directory: Ensure a directory named
debug_artifactsexists in the project root. - Save Backtraces: Write the full output of
thread backtrace alltodebug_artifacts/backtrace_<timestamp>.txt. - Save Tracing Logs: (Only if using Tracing Skill)
Environment restoration
After debugging is complete, restore your package.json to use production packages:
node "<skill-root>/scripts/setup_debug_deps.cjs" --restore
pnpm install
Use the same resolved <skill-root> as in Preparation.