5.7 KiB
IndexOutOfRangeException
- 分类:blocking
- Issue 数:1
0.7.2c最近一天次数:1- 设备数合计:1
- 报告生成:2026-06-05 12:00:37
Issue
| Issue | 类型 | 次数 | 设备 | 最近上报 | 消息 |
|---|---|---|---|---|---|
| 02b2941e9c9eb31af21e911afe38c69b | IndexOutOfRangeException | 1 | 1 | 2026-06-05 11:25:28 | index + length > size |
设备上下文
02b2941e9c9eb31af21e911afe38c69b
- 样本 CrashId:
a987c8b4a6e540a3ac9f1c8e021561a8 - 样本 DeviceId:
08-8f-c3-45-d9-00 - CrashSight 附带日志文件:
False
最终上报内容:
IndexOutOfRangeException
index + length > size
System.Array.Clear (System.Array array, System.Int32 index, System.Int32 length) (at <00000000000000000000000000000000>.0)
csh.cge (csh a) (at <00000000000000000000000000000000>.0)
csa.cfq (csa a) (at <00000000000000000000000000000000>.0)
cro.cfg (cro a) (at <00000000000000000000000000000000>.0)
cfo.cep (cfo a) (at <00000000000000000000000000000000>.0)
fj.cpp () (at <00000000000000000000000000000000>.0)
fj.bgf () (at <00000000000000000000000000000000>.0)
TH1_Logic.Core.Main.Update () (at <00000000000000000000000000000000>.0)
System.Array.Clear (System.Array array, System.Int32 index, System.Int32 length) (at <00000000000000000000000000000000>.0)
csh.cge (csh a) (at <00000000000000000000000000000000>.0)
csa.cfq (csa a) (at <00000000000000000000000000000000>.0)
cro.cfg (cro a) (at <00000000000000000000000000000000>.0)
cfo.cep (cfo a) (at <00000000000000000000000000000000>.0)
fj.cpp () (at <00000000000000000000000000000000>.0)
fj.bgf () (at <00000000000000000000000000000000>.0)
TH1_Logic.Core.Main.Update () (at <00000000000000000000000000000000>.0)
System.Array.Clear (System.Array array, System.Int32 index, System.Int32 length) (at <00000000000000000000000000000000>.0)
csh.cge (csh a) (at <00000000000000000000000000000000>.0)
csa.cfq (csa a) (at <00000000000000000000000000000000>.0)
cro.cfg (cro a) (at <00000000000000000000000000000000>.0)
cfo.cep (cfo a) (at <00000000000000000000000000000000>.0)
fj.cpp () (at <00000000000000000000000000000000>.0)
fj.bgf () (at <00000000000000000000000000000000>.0)
TH1_Logic.Core.Main.Update () (at <00000000000000000000000000000000>.0)
IndexOutOfRangeException
index + length > size
System.Array.Clear (System.Array array, System.Int32 index, System.Int32 length) (at <00000000000000000000000000000000>.0)
csh.cge (csh a) (at <00000000000000000000000000000000>.0)
csa.cfq (csa a) (at <00000000000000000000000000000000>.0)
cro.cfg (cro a) (at <00000000000000000000000000000000>.0)
cfo.cep (cfo a) (at <00000000000000000000000000000000>.0)
fj.cpp () (at <00000000000000000000000000000000>.0)
fj.bgf () (at <00000000000000000000000000000000>.0)
TH1_Logic.Core.Main.
...
同设备最近 ERROR 上报序列:
| 时间 | Issue | 类型 | 消息 |
|---|---|---|---|
| 2026-06-05 11:50:24 | f491e675022da1efea0d0392ab128f62 | ||
| 2026-06-05 11:49:50 | d8de4834232190d1b31e54f83f92455d | ||
| 2026-06-05 11:49:50 | 6015aabf5b375a7e2a323b4b520f7fa7 | ||
| 2026-06-05 11:49:48 | 4c75b2d78a859ca6b6418bd8ea9103c3 | ||
| 2026-06-05 11:38:05 | fc2d124d395f06a7f9a3d4f88141e46e | ||
| 2026-06-05 11:25:28 | 02b2941e9c9eb31af21e911afe38c69b | ||
| 2026-06-05 11:01:25 | b7c9c2e934523a6a53258c60532a5a16 | ||
| 2026-06-05 11:01:24 | cf8c203b0fba86738b81adabfddb6773 |
代码位置
Unity/Assets/Scripts\TH1_Renderer\MapRenderer.cs:289: UpdateDamagePreview();Unity/Assets/Scripts\TH1_Renderer\MapRenderer.cs:294: private void UpdateDamagePreview()Unity/Assets/Scripts\TH1_Renderer\MapRenderer.cs:349: AIActionScoreCalculator.RefreshCalMap(_mapData);Unity/Assets/Scripts\TH1_Renderer\MapRenderer.cs:351: calMap.DeepCopy(_mapData);Unity/Assets/Scripts\TH1_Data\MapData.cs:1991: public void DeepCopy(MapData copyMap)Unity/Assets/Scripts\TH1_Data\PlayerData.cs:184: public void DeepCopy(PlayerMapData copyData)Unity/Assets/Scripts\TH1_Data\PlayerData.cs:440: public void DeepCopy(PlayerData copyData)Unity/Assets/Scripts\TH1_Data\PlayerData.cs:1318: public void DeepCopy(TechTreeData copyData)
解码结论
解码后的完整项目栈是 MapRenderer.Update -> MapRenderer.UpdateDamagePreview -> MapData.DeepCopy -> PlayerMapData.DeepCopy -> PlayerData.DeepCopy -> TechTreeData.DeepCopy -> System.Array.Clear。触发点是鼠标悬停敌方单位 0.5 秒后,伤害预览用 AIActionScoreCalculator.CalMap 深拷贝当前 _mapData 并模拟攻击。
异常 index + length > size 来自集合/数组清理过程,最接近的源码点是 TechTreeData.DeepCopy 里对 TechSet、TechAtomActionCacheSet 的 Clear() 与重新填充;同方法目前没有清理 TechAtomCacheSet,也没有对 MemoryPackIgnore 的 cache set 做空保护重建。由于样本 hasLogFile=false,不能证明是哪一个集合内部状态损坏,但根因范围已经缩到伤害预览临时 Map 深拷贝中的科技树缓存集合。后续症状可能是鼠标悬停伤害预览崩溃、预览数值不显示,或 AI 计算复用 CalMap 时受脏缓存影响。
判断
这是阻断类,因为 CrashSight 行或 LogError 包装内容中存在真实异常类型、异常对象或调用栈;不是单纯业务状态诊断。
本批样本 hasLogFile=false,API 能拿到的是最终上报内容和同设备 ERROR 上报序列,不包含完整 Unity 运行日志;根因上下文按可见上报链路记录。
建议
优先按次数最高的 Issue 样本复现并修复;若同设备上报序列中出现更早的异常,应以更早异常作为源头处理。