行业资讯
📅 2026/7/13 1:05:27
一条 undo 栈引发的 use-after-free
Qt 编辑器关窗崩溃:一条 undo 栈引发的 use-after-free环境:Qt 5.x · Windows 7 高复现 · Windows 10 偶发不现现象:用户对画布做过编辑后关闭窗口,进程以c0000005崩溃,栈顶常在Qt5Widgets.dll1. 现象某宿主程序内嵌一个画布编辑器窗口CanvasEditorWindow : public QWidget。典型流程:打开编辑器 → 拖动/修改图元(undo 栈 +1)→ 关闭窗口 → 进程崩溃特征:未编辑直接关闭:通常正常编辑过再关闭:Win7 上几乎必现;Win10 上同一二进制有时难以复现业务保存已成功,崩溃发生在窗口销毁阶段2. 误导性的第一反应容易先怀疑:持久化/保存逻辑QGraphicsView/QGraphicsScene析构顺序Win7 上viewport()-g