面包屑定位:卡在 “[rc] vblank done” 与 “[rc] flush done” 之间 —— 即帧缓冲刷新循环。 _dirty_y_max 是 .bss 全局,一旦被写坏成很大的正数: - 循环退化成死循环 → 卡死(故 [dt] 心跳一行都不打印); - run_start*pitch 越写越远,写出 0x80000000 帧缓冲之外 → 落进 MMIO → 宿主 QEMU 被写崩(unknown software exception 0x40000015 = STATUS_FATAL_APP_EXIT), 且屏幕只留下顶部已写的那一小块。 两个循环(背景铺底 + 帧缓冲刷新)的行界现夹到 [0, h-1]。这不是根因修复 (.bss 仍被写坏),但: - 止血:不再死循环、不再把宿主 QEMU 写崩; - 兼作探针:[dt] 心跳里的 dymin/dymax 若明显越界,即可确认 .bss 被写坏的量级。