Crash report 与 symbol¶
有效 crash report 要识别准确 binary,并提供足以复现或 symbolize 的状态。最后画面截图或 单独一行“crashed”只是辅助证据,不是 stack trace。
最小报告¶
- 准确 CCB commit、tag/release URL,以及 binary 是否本地重编;
- OS/version、architecture 或 Android ABI/API/device、compiler/build type、curses/tiles、 SDL2/SDL3、sound、localization、Lua UI 与 sanitizer/backtrace setting;
- active Mod/相关配置、复现步骤、预期/实际结果;
- 首个 error 及上下文 debug log,可得的 stack trace/tombstone/minidump;
- 新 world 是否复现、是否需要 save,以及 consent/redaction 说明。
Native 路径¶
src/crash.cpp 安装平台 crash handler/stack trace support,src/debug.cpp 拥有 debug log。
stack 只有配合同一 commit/build configuration 的 executable、shared library 与 symbol 才
有用。处理前保留 raw address。
Android 路径¶
区分 Java exception、native crash_dump/tombstone、renderer/device loss、asset copy、
storage 与 install/signature failure。收集包含 process start 和 fatal block 的聚焦
logcat,记录 version code/name、package、ABI 与 install/update state。
隐私与安全¶
log、save、path、username、world name、network address、token 与 device info 可能敏感。 去除 secret 时保留 control flow/ID;私密 save/dump 使用获准受限渠道,默认不能放公开 Issue。
Triage 流程¶
在报告 commit/config 复现,用匹配 artifact symbolize,缩减 Mod/data,定位 owner subsystem, 可行时添加确定性 regression test。得到处理后 trace 也不能丢弃原始 log。
Artifact 政策¶
PDB、debug symbol、tombstone、core file 与 profiler capture 是 CI/release/diagnostic artifact, 不是仓库源码。记录 checksum、retention、access 与 deletion policy。