Windbg如何排查一次线程挂起的具体原因?

2026-05-25 06:290阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计750个文字,预计阅读时间需要3分钟。

Windbg如何排查一次线程挂起的具体原因?

测试报告提示我们,预定任务未执行,请检查相关日志,目前只有开始执行,没有执行结束。估算可能是卡在主线程上了。因此,先分析日志,检查加载情况,查看eeversion和线程卡主,再查看线程和r

测试告诉我们定时任务没有执行了,排查相关日志,只有开始执行,没有执行结束。估计是什么地方卡主了。
所以dump分析日志

先检查一下加载情况
!eeversion

线程卡主了,先看线程
!runaway

有两条线程时间挺长的。有一条是我们的调度常驻线程。时间成是对的,另一条应该就是卡主的。
先看第一条

~15s
!clrstack

果然这个最长的是调度线程看另外一条

另外一条好像是在等socket数据。 看这个函数不是我们这边负责的,是更底层的人。底层的人反馈说这个时长不一定是卡主了,他是重复利用的,可能是累计起来的

那是不是。因为这条线程重复利用。然后累计的时间比较长呢?

第二条跟第三条线程时间差的太多了,应该不是。

那么他真的是卡主了很久嘛?

这里有一个变量时间。转换一下格式之后的时间与卡主的数据的时间。是相等的,基本上可以断定他就是卡在这里很久很久。

Windbg如何排查一次线程挂起的具体原因?

底层的人员反馈,正常情况不会出现卡主的。就算是网络调用失败了一般一分钟就会爆超时异常。短时间内没有给出原因。

阅读全文
标签:问题测试

本文共计750个文字,预计阅读时间需要3分钟。

Windbg如何排查一次线程挂起的具体原因?

测试报告提示我们,预定任务未执行,请检查相关日志,目前只有开始执行,没有执行结束。估算可能是卡在主线程上了。因此,先分析日志,检查加载情况,查看eeversion和线程卡主,再查看线程和r

测试告诉我们定时任务没有执行了,排查相关日志,只有开始执行,没有执行结束。估计是什么地方卡主了。
所以dump分析日志

先检查一下加载情况
!eeversion

线程卡主了,先看线程
!runaway

有两条线程时间挺长的。有一条是我们的调度常驻线程。时间成是对的,另一条应该就是卡主的。
先看第一条

~15s
!clrstack

果然这个最长的是调度线程看另外一条

另外一条好像是在等socket数据。 看这个函数不是我们这边负责的,是更底层的人。底层的人反馈说这个时长不一定是卡主了,他是重复利用的,可能是累计起来的

那是不是。因为这条线程重复利用。然后累计的时间比较长呢?

第二条跟第三条线程时间差的太多了,应该不是。

那么他真的是卡主了很久嘛?

这里有一个变量时间。转换一下格式之后的时间与卡主的数据的时间。是相等的,基本上可以断定他就是卡在这里很久很久。

Windbg如何排查一次线程挂起的具体原因?

底层的人员反馈,正常情况不会出现卡主的。就算是网络调用失败了一般一分钟就会爆超时异常。短时间内没有给出原因。

阅读全文
标签:问题测试