【Qt bug排查】Qt项目debug模式下,关闭可视化界面后,后台程序不退出,依然在打印log

日志显示都已经析构完成,就是不打印主线程最后的 log(见上图:MAIN 应用程序退出)。

原因:新增的 Cdu 服务器业务类,在析构函数中使用了 QMetaObject::invokeMethod +阻塞的方式调用了自己所在子线程的 closeUdp() 方法,导致死锁。

单步执行 31 行,会跳转到下面这个地方,再也出不去,导致主程退出失败(现象:可视化界面没了,但是程序还在运行)

总结: 析构函数执行期间,禁止使用 QMetaObject::invokeMethod 以阻塞连接方式调用当前对象的成员方法(包括其所在子线程的方法),也禁止在该调用中访问当前对象的成员变量。 否则会导致死锁!

核心结论:析构函数中,阻塞模式调用自身 / 自身子线程的方法 / 访问自身成员 是高危操作 !

相关推荐
烧烧的酒0.o5 小时前
Codex桌面版更新后不能使用最新模型问题-排查修复总结
chatgpt·bug
sg_knight1 天前
ZCode Bug 定位实战:把报错丢给 ZCode,它是怎么修的
llm·bug·agent·ai编程·glm·智谱·zcode
轩轶子3 天前
Python CLI Todo:一次数据结构错误引发的 Bug
数据结构·python·bug
鬼手点金3 天前
Claude Code示范案例-修复 Bug 工作流
java·服务器·前端·javascript·bug·openclaw
^Rocky11 天前
IT 疑难杂症诊疗室:复杂技术问题解决实录
运维·bug
Keven_1113 天前
Bug:UVA816
bug
Keven_1113 天前
Bug:UVA1103
bug
钱栈up14 天前
坯料管理导入功能bug修复:只改前端一个文件就解决问题
前端·bug
项目管理实用笔记14 天前
Bug跟踪管理系统有哪些?2026 推荐清单与选型指南
bug·研发管理·研发管理工具·项目管理软件选型
iNeuOS工业互联网17 天前
iNeuOS工业互联网操作系统,重要更新:性能优化、安全漏洞与BUG修复,远程控制响应效率大幅提升
性能优化·bug