记一次上位机软件线程泄露的分析及解决

上位机软件在客户现场隔一段时间说操作了没反应,但是上位机又没死,出现了一些奇怪现象:

  • 左上角的时间不走了(本来是1s运行一次)
  • 使用任务管理器查看,内存占用1.5G,线程有3000多个,正常情况下,线程应该是400个左右,内存500M以内(带的设备比较多)。
    本次分析更关心的是线程泄露,为啥会出现一直线程增加的情况
    解决方法:

1.手动快照内存Dump文件

在这里插入图片描述

2.直接使用VS2022分析Dump文件

在这里插入图片描述
选择已经存储的dmp文件,它会联网加载符号
在这里插入图片描述
点击右上方的运行分析诊断
在这里插入图片描述
再点击分析按钮
在这里插入图片描述
下方出现了一些分析。然后逐个单击查看详情。

在这里插入图片描述
在这里插入图片描述
从这里大概能发现一些蛛丝马迹,说明是哪个函数出现问题。
最终分析的大概原因是,在线程中大量使用异步代码。后续会把代码贴出来。

猜你喜欢

转载自blog.csdn.net/lishuangquan1987/article/details/134336813
今日推荐