Snapshot before max-resize threshold diagnosis
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# BUG-20260409-0002
|
||||
|
||||
> 适用场景:记录问题本身,不展开完整修复方案。修复内容写入对应的 Fix 文档。
|
||||
|
||||
## 基本信息
|
||||
|
||||
- ID: BUG-20260409-0002
|
||||
- 标题: 基础控件生命周期与边界条件问题
|
||||
- 状态:已修复 / 待持续回归
|
||||
- 严重性:S2
|
||||
- 优先级:P1
|
||||
- 模块:Control / Window / Table / Label / Button / TextBox / MessageBox
|
||||
- 版本 / 分支:`master`
|
||||
- 环境:Windows + EasyX + VS2022
|
||||
- 发现人:静态审查
|
||||
- 关联 Fix ID:Fix-BUG-20260409-0002
|
||||
|
||||
## 问题描述
|
||||
|
||||
- 现象:
|
||||
- `Window` 析构时可能先关闭图形环境,再让控件析构访问绘图接口。
|
||||
- `Table` 在空表头、空数据、列数不一致时存在越界或空状态问题。
|
||||
- `Label::setText()` 后尺寸与背景快照不能及时同步。
|
||||
- `MessageBox` 外层曾直接干预 `Dialog` 初始化流程。
|
||||
- 一些资源所有权和析构职责不够清晰。
|
||||
- 影响范围:
|
||||
- 基础稳定性
|
||||
- 边界输入正确性
|
||||
- 维护成本
|
||||
- 期望结果:
|
||||
- 生命周期安全、边界输入可防御、接口语义清晰
|
||||
- 实际结果:
|
||||
- 存在潜在崩溃、越界、状态不一致和维护负担
|
||||
|
||||
## 复现信息
|
||||
|
||||
- 前置条件:特定表格输入、动态修改文本、窗口关闭、MessageBox 使用链
|
||||
- 复现步骤:
|
||||
|
||||
1. 静态审查相关代码路径。
|
||||
2. 构造空表头、长于表头的数据行、动态变更 Label 文本。
|
||||
3. 观察关闭窗口或销毁相关对象时的析构顺序。
|
||||
|
||||
- 复现概率:高概率 / 必现(不同问题不同)
|
||||
- 最小复现 Demo:[可选]
|
||||
- 证据:静态分析、日志、编译验证
|
||||
|
||||
## 初步分析
|
||||
|
||||
- 疑似位置:
|
||||
- `Window::~Window`
|
||||
- `Control` 析构与背景快照恢复链
|
||||
- `Table::initTextWaH / setData / drawHeader / drawTable`
|
||||
- `Label::setText`
|
||||
- `MessageBox::showAsync / showModal`
|
||||
- 触发条件:
|
||||
- 边界数据输入
|
||||
- 动态文本变化
|
||||
- 对象销毁 / 窗口关闭
|
||||
- 相关线索:
|
||||
- 所有权层次混乱
|
||||
- 空状态防御不足
|
||||
- 接口暴露超出真实职责
|
||||
|
||||
## 跟踪信息
|
||||
|
||||
- 首次发现时间:本轮协作初期
|
||||
- 最后更新时间:2026-04-09
|
||||
- 修复版本:[当前工作区]
|
||||
- 验证版本:[当前工作区]
|
||||
- 备注:字符集相关问题暂未处理,仍按 MBCS 假设工作
|
||||
Reference in New Issue
Block a user