Cpp Server Crash Triage
Overview
Turn a crash dump or stack trace into a build-bound stable signature, symbol state, first application frame, ranked hypotheses, and next discriminating experiment.
When to use
Use for access violations, segmentation faults, aborts, corrupted stacks, watchdog crashes, or repeated server dump signatures.
When NOT to use
Do not use for static packet schema drift, ordinary log errors without a crash, or live service control.
Required inputs and context discovery
Collect build ID, executable hash, platform, compiler, dump/core path, exception or signal, thread, raw frames, symbol paths, recent changes, reproduction state, and protected production paths.
Safety and risk level
Read-only triage. Do not restart production, attach invasive debuggers, upload private dumps, or modify symbol stores without authorization.
Workflow
- Bind the dump and symbols to an exact build snapshot. Completion criterion: mismatched or missing symbols are explicit.
- Normalize volatile addresses into a stable crash signature. Completion criterion: equivalent stacks group without hiding frame differences.
- Identify the first application-owned frame and relevant thread context. Completion criterion: source blame is not assigned to runtime frames alone.
- Rank hypotheses using exception type, frames, logs, and recent changes. Completion criterion: each hypothesis has supporting and counter evidence.
- Define the smallest safe reproduction, instrumentation, or symbol action. Completion criterion: service-control work remains BLOCKED pending approval.
Evidence and output contract
Produce cpp-crash-triage.json with build identity, signature, normalized frames, symbol state, ranked hypotheses, limitations, and next experiment.
Handoff contract
Record build/dump paths, signature, first application frame, symbol gaps, attempted reproductions, suspect paths, and next action owner.
Pitfalls and anti-rationalization
- Raw addresses are not stable signatures.
- A top frame without matching symbols is not a root cause.
- Do not upload dumps that may contain credentials or player data.
- An unreproduced crash remains Snapshot or Unverified.
Verification checklist
- Dump matches the recorded build.
- Frames are normalized without losing order.
- Symbol limitations are explicit.
- Hypotheses cite evidence.
- Next action is safe and bounded.
References and scripts
Read references/commands.md for Windows and Linux symbolization commands. Use the bundled scripts/crash_triage.py for normalized fixtures and project-specific debugger tooling for authorized dump inspection.