Crash reports and symbols¶
A useful crash report identifies an exact binary and enough state to reproduce or symbolize the failure. Screenshots of the last visible frame or a single “crashed” line are supporting evidence, not a stack trace.
Minimum report¶
- exact CCB commit, tag/release URL, and whether the binary was locally rebuilt;
- OS/version, architecture or Android ABI/API/device, compiler/build type, curses/tiles, SDL2/SDL3, sound, localization, Lua UI, and sanitizer/backtrace settings;
- active mods and relevant configuration, reproduction steps, expected/actual result;
- first error plus surrounding debug log; stack trace/tombstone/minidump when available;
- whether a new world reproduces, whether a save is required, and consent/redaction notes.
Native paths¶
src/crash.cpp installs platform crash handling and stack-trace support; src/debug.cpp owns
debug logging. A stack is useful only with the matching executable, shared libraries, and symbols
from the same commit and build configuration. Preserve raw addresses before post-processing.
Android paths¶
Distinguish Java exception, native crash_dump/tombstone, renderer/device loss, asset-copy,
storage, and install/signature failures. Capture a focused logcat interval including the
process start and fatal block; record version code/name, package, ABI, and install/update state.
Privacy and security¶
Logs, saves, paths, usernames, world names, network addresses, tokens, and device information can be sensitive. Redact secrets while preserving control flow and IDs. Share private saves/dumps through an approved restricted channel, never a public issue by default.
Triage workflow¶
Reproduce on the reported commit/config, symbolize with matching artifacts, reduce mods/data, locate the owning subsystem, and add a deterministic regression test when practical. Do not discard the original log after obtaining a prettier processed trace.
Artifact policy¶
PDBs, debug symbols, tombstones, core files, and profiler captures are CI/release/diagnostic artifacts, not repository source. Record checksum, retention, access, and deletion policy.