登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
/ 2 页
下一页
返回列表
首页
›
资源区
›
代码
›
WinDbg 分析 .NET Dump 线程锁问题
WinDbg 分析 .NET Dump 线程锁问题
[ 复制链接 ]
FatimaNuyt
2025-5-28 22:06:03
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
在定位 .NET 应用程序中的高 CPU 占用问题时,WinDbg 是非常强大的工具之一,尤其配合 SOS 扩展使用可以快速锁定“忙线程”或死锁等问题。
本文将基于一次实际的分析流程,演示如何一步步定位由线程锁引起的 CPU 高占用。
1. 加载 SOS 扩展(针对 .NET)
首先,我们需要加载 SOS.dll。根据你所调试的 .NET 版本不同,使用 .loadby 指令时的模块名也不同:
.loadby sos clr
复制代码
注意:
.NET Framework 使用的是 clr.dll,所以 .loadby sos clr 正确;
如果你调试的是 .NET Core 或 .NET 5+,对应模块可能是 coreclr.dll;
可使用 lm 命令确认实际加载的模块名。
2.查看cpu占用高的线程
!runaway
复制代码
这个命令显示自 WinDbg 附加后各线程的 CPU 占用时间。
3. 查看每个线程的调用栈
查看所有线程的调用栈是分析的关键一步。我们使用以下命令:
~* k
复制代码
这会列出所有线程的
原生调用堆栈(native stack)
。
关注以下三类线程特征:
持续执行的线程(高 CPU 嫌疑线程)
栈顶函数是业务逻辑方法、算法处理、循环等,说明该线程在“忙”,是最需要关注的对象。
卡在等待(阻塞)状态的线程
以下函数说明线程被阻塞,可能在等待锁或资源:
WaitForSingleObject
Monitor.Enter
WaitOne
Sleep
找到等待的资源后,看正在等待什么,如果正在等待GC,则继续找谁在GC
找到在执行 GC 的线程
如果调用栈中包含以下函数,说明线程正在 GC 中:
clr!GCHeap::GarbageCollect
clr!SVR::gc_heap::gc1
clr!SVR::gc_heap::gc2
clr!SVR::gc_heap::gc3
clr!GCHeap::GarbageCollectGeneration
clr!SVR::GCHeap::GarbageCollect
clr!GCHeap::gc_thread_function
GCInterface::Collect
频繁GC会挂起线程,增加CPU消耗。
4. 分析具体线程
在上一步中,如果你发现某个线程(例如线程 28)调用栈活跃、函数栈持续变化,或者涉及 GC、锁等待,可以使用以下命令聚焦:
~28s
!clrstack
复制代码
这将切换到线程 28 并显示它的托管调用栈,便于你进一步确认是否存在如下情况:
死循环或密集计算导致高 CPU;
一直等待某个锁对象,导致其他线程堆积;
某些资源释放不及时,导致线程频繁争抢。
总结
通过上述方法,我们可以初步判断线程是否因锁或其他因素导致 CPU 占用异常。在实际排查中,掌握如下三点尤为重要:
先宏观查看所有线程调用栈
;
识别忙线程 / 等待线程
/ GC线程
;
进一步使用 !clrstack 分析托管调用栈
。
这是一种稳定、高效的诊断思路,尤其适用于高 CPU 的 dump 分析场景。
来源:新程序网络收集,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
WinDbg
分析
NET
Dump
线程
相关帖子
.NET 10 新特性概览与相关文章索引
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
DotNetPy:现代.NET 与 Python 互操作 实战指南
【译】 再次革新 .NET 的构建和发布方式(二)
.NET 诊断技巧 | 日志框架原理、手写日志框架学习
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
.NET 10 新特性概览与相关文章索引
0
750
岭猿
2026-03-27
业界
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
0
880
艋佰傧
2026-03-28
业界
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
0
739
章娅萝
2026-03-28
业界
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
0
787
姥恫
2026-03-28
业界
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
0
894
剽达崖
2026-03-28
业界
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
0
126
决台
2026-03-28
业界
世界第一个开源可商用 .NET Office 转 PDF 工具/库 - MiniPdf
0
210
咫噎
2026-03-28
业界
DotNetPy:现代.NET 与 Python 互操作 实战指南
0
614
泡市
2026-03-28
安全
【译】 再次革新 .NET 的构建和发布方式(二)
0
185
溜椎干
2026-03-29
业界
.NET 诊断技巧 | 日志框架原理、手写日志框架学习
0
216
咒卖箴
2026-03-30
回复
(35)
琦谓
2025-11-13 16:17:03
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,下载保存了,貌似很强大
屠焘
2025-12-11 13:08:50
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
东西不错很实用谢谢分享
能氐吨
2025-12-18 08:14:40
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
新版吗?好像是停更了吧。
荡俊屯
2025-12-29 08:23:48
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
这个有用。
梨恐
2026-1-1 13:52:19
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,学习下。
瞧蛀
2026-1-13 19:48:15
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
谢谢分享,辛苦了
莘度
2026-1-17 00:46:11
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享,学习下。
黎瑞芝
2026-1-18 21:21:08
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
谢谢分享,辛苦了
阎一禾
2026-1-20 21:49:17
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
用心讨论,共获提升!
归悦可
2026-1-21 10:08:44
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
东西不错很实用谢谢分享
敛饺乖
2026-1-22 09:41:43
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享,下载保存了,貌似很强大
郗新语
2026-1-24 10:33:55
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
收藏一下 不知道什么时候能用到
剩鹄逅
2026-1-24 11:23:49
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,下载保存了,貌似很强大
苗嘉惠
2026-1-25 10:44:25
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
东西不错很实用谢谢分享
褐洌
2026-1-26 06:37:23
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
新版吗?好像是停更了吧。
萨瑞饨
2026-1-26 08:06:22
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
东西不错很实用谢谢分享
申倩语
2026-1-26 09:18:34
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
收藏一下 不知道什么时候能用到
圄旧剖
2026-1-27 08:38:54
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
喜欢鼓捣这些软件,现在用得少,谢谢分享!
系味
2026-1-28 07:31:17
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
谢谢分享,辛苦了
下一页 »
1
2
/ 2 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
科技
业界
签约作者
程序园优秀签约作者
发帖
FatimaNuyt
2026-1-28 07:31:17
关注
0
粉丝关注
5
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9522
6
韶又彤
9916
7
宋子
9878
8
荪俗
9020
9
闰咄阅
9997
10
刎唇
9999
查看更多
今日好文热榜
0
Linux I/O 演进史:从管道到零拷贝,一篇串
0
YOLO-Master 与 YOLO26 开始
0
Vue 表格组件 vxe-table 灵活导出指定数据
0
Linux I/O 演进史:从管道到零拷贝,一篇串
0
Linux I/O 演进史:从管道到零拷贝,一篇串
0
Linux I/O 演进史:从管道到零拷贝,一篇串
0
Vue 表格组件 vxe-table 灵活导出指定数据
0
Vue 表格组件 vxe-table 灵活导出指定数据
0
Linux I/O 演进史:从管道到零拷贝,一篇串
0
Linux I/O 演进史:从管道到零拷贝,一篇串
0
Linux I/O 演进史:从管道到零拷贝,一篇串
662
Spring Boot 4.0.5 正式发布,又一项技术被
556
龙芯2k0300 - 走马观碑组MPU6050驱动移植
1
红日3
881
浅析SQL注入原理与分类——含payload合集和
1
浅析SQL注入原理与分类——含payload合集和
1
浅析SQL注入原理与分类——含payload合集和
1
浅析SQL注入原理与分类——含payload合集和
1
浅析SQL注入原理与分类——含payload合集和
1
浅析SQL注入原理与分类——含payload合集和