DEBUG pyqt + ntdll.dll + 随机异常退出

        最近在开发一自动控制的软件,需要实时刷新曲线图,打包部署发现程序会随机崩溃,最艹的是还让部署的那台工控机上另一自控软件崩溃的频率增加了。

        于是定位问题,看windows的应用程序日志发现每次崩溃都指向ntdll.dll(c0000374堆损坏),于是考虑是不是工控机太久没更新的问题,同时网上直接检索ntdll.dll问题的结果也是让用各种方式进行更新或替换。在工控机上找到ntdll.dll,发现果然和开发环境上的ntdll.dll存在版本差异,于是进行替换,后因权限问题作罢。

        但是问题得解决,于是考虑不如加个程序自动启动,检测进程,如果里面没有就直接再启动一个。

        然后偶然发现,开发环境这软件也崩。。。

        最后定位到线程问题了,因为需要实时刷新,同时主界面还需要别的交互,考虑不卡主线程界面,就在子线程(threading.Thread)里进行了数据I/O,数据处理和作图操作。而图表chartView和作图函数都是在主线程里的,结合查到的两条信息:

        1、Python程序因为ntdll.dll和QtGui4.dll崩溃

        2、子线程不能更新主线程UI

        把之前threading.Thread实现的线程作图,改成了基于QThread的信号收发,在主线程里进行最后一步作图,问题得到了解决

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值