使用WinDbg分析CPU100%的问题

news2024/9/17 7:33:35

    在我们软件运行的时候,偶尔会出现CPU占比100%的问题,而且极其不容易排查,概率极低,我硬是操作了一个下午,出现了一次,然后找到了dmp文件,也没有任何的规律,那么就可以借助windbg进行分析。

现象就是

1.解决此问题,首先让软件出现此问题,然后找到任务管理,点击创建转储文件后,会生成dmp文件

2.这个dmp文件非常的大,我这个1.9G

3.在微软商店下载

4.打开后是

5.选择需要分析dmp文件

6.有些电脑需要下载一些dll,下载完成后,就是下面的样子

7. !t,命令是查询托管线程的,(对这个问题没有帮助)

8. ~*e !dumpstack,查询线程栈

这个命令执行后,有大量的信息,需要一个一个的看,会看到下面的报错

其实问题已经发现了,就是非安全线程集合导致的问题

9.~*e !clrstack,使用此命令会让错误更加的清晰

里面会看到大量的异常信息

10.其实在这里就可以在代码里面全局搜索

xxxxxx.Collect.DoException() 这个方法,就算是调用另外一个dll,那么搜索命名空间也能找到

11.当然,我们可以使用命令,把这个报错的dll导出去

!ip2md 00007ffe6a6d00cf

12.此命令就是把错误的代码保存成dll

!savemodule 00007ffe6a8c2d60 D:\1\1.dll

13.最终就能看到这个dll

14.最后用反编译工具,直接就定位这里了

15.因为这个问题,我知道是怎么发生的,所以看到这里就明白了,此处是非安全线程造成的,所以解决的办法,就是加锁,或者换成安全线程集合即可,最后完美解决,经过几天的测试,再也没有出现CPU100%的问题了。

最后感谢 一线码农 的指导

https://www.cnblogs.com/huangxincheng/p/14783766.html

来源:使用WinDbg分析CPU100%的问题-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1194186.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二维码解码器怎么用?快速分解二维码图片的方法

现在很多人会将链接网址生成二维码之后来使用,这种方式能够让别人更快的获取链接的内容,而且扫码访问内容的方式也更适合大家的使用习惯。那么如果想要获取二维码中的链接时,一般会使用二维码解码器来处理,那么具体该怎么使用呢&a…

nodejs express multer 保存文件名为中文时乱码,问题解决 originalname

nodejs express multer 保存文件名为中文时乱码,问题解决 originalname 一、问题描述 用 express 写了个后台,在接收文件并保存的时候 multer 接收到的文件名为乱码。 二、解决 找了下解决方法,在 github 的 multer issue 中找到了答案 参…

Ubuntu 22.04 安装水星无线 USB 网卡

我的 USB 网卡是水星 Mercury 的, 在 Ubuntu 22.04 下面没有自动识别。 没有无线网卡的时候只能用有线接到路由器上,非常不方便。 寻思着把无线网卡驱动装好。折腾了几个小时装好了驱动。 1.检查网卡类型 & 安装驱动 使用 lsusb 看到的不一定是准确…

归并排序之确定递归层数

题目 给定一维int型数组a[0,1,…,n-1], 使用归并排序方法, 对其进行从小到大排序, 请输出递归过程中自顶自下第三层的排序结果, 其中最顶层为第一层, 即最终的排序结果层. 归并排序划分请按a[0,mid(0n-1)/2], a[(0n-1)/21, n-1]进行划分子问题. Input 输入第1行有一个int型正…

AI由许多不同的技术组成,其中一些最核心的技术如下

AI由许多不同的技术组成,其中一些最核心的技术包括: 机器学习:这是一种让计算机从数据中学习的技术,它可以根据已有的数据预测未来的趋势和行为。机器学习包括监督学习、无监督学习和强化学习等多种类型。深度学习:这…

Flink SQL -- 命令行的使用

1、启动Flink SQL 首先启动Flink的集群,选择独立集群模式或者是session的模式。此处选择是时session的模式:yarn-session.sh -d 在启动Flink SQL的client: sql-client.sh 2、kafka SQL 连接器 在使用kafka作为数据源的时候需要上传jar包到…

Flutter笔记:光影动画按钮、滚动图标卡片组等

Flutter笔记 scale_design更新:光影动画按钮、滚动图标卡片组 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263…

又一重要合作,创邻科技华为云联营产品正式发布

近日,创邻科技旗下的“Galaxybase高性能图平台”正式入驻华为云云商店联营商品,创邻科技成为华为云在数据库与缓存领域的联营联运合作伙伴。通过联营联运模式,双方合作能够深入产品、生态、解决方案等多个领域,助力各行业用户数字…

农业大棚智能化改造升级与远程视频监管方案,助力智慧农业建设发展

一、需求分析 随着现代化技术的发展,农业大棚的智慧化也成为当前备受关注的智慧农业发展手段。利用先进的信息化手段来对农业大棚进行管理,采集和掌握作物的生长状况、作业监督、生态环境等信息数据,实现精准操作、精细管理,远程…

SMART PLC模拟量上下限报警功能块(梯形图代码)

博途PLC模拟量偏差报警功能块请参考下面的文章链接: 模拟量偏差报警功能块(SCL代码)_RXXW_Dor的博客-CSDN博客文章浏览阅读594次。工业模拟量采集的相关基础知识,可以查看专栏的系列文章,这里不再赘述,常用链接如下:PLC模拟量采集算法数学基础(线性传感器)_plc傳感器數…

Leetcode—637.二叉树的层平均值【简单】

2023每日刷题(二十五) Leetcode—637.二叉树的层平均值 BFS实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ /*** Note: The returned array mu…

归并分治 归并排序的应用 + 图解 + 笔记

归并分治 前置知识:讲解021-归并排序 归并排序 图解 递归 非递归 笔记-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/134338789?spm1001.2014.3001.5501原理: (1)思考一个问题在大范围上的答案,是否等于&…

c语言break和continue语句用法

作用 break语句:可用于循环结构和开关结构(switch)中,在开关语句中的作用是执行完当前case后立即跳出switch结构。在循环语句中的作用是终止当前层的循环。continue语句:作用是跳过循环体中剩余的语句而强行执行下一次循环。 区别 continue…

golang 库之「依赖注入」

文章目录 1. 写在最前面2. 依赖注入2.1 使用场景2.2 框架对比 3. fx 框架使用场景示例3.1 示例3.2 golang 原生的库3.3 fx 库3.4 对比3.4.1 如上两种实现方式对比3.4.2 关于过度设计3.4.3 感悟 4. 碎碎念5. 参考资料 1. 写在最前面 同事在技术分享的时候用了 golang 的 fx 框架…

chatglm3-6b记录问答对

# 打开文件,第二个参数是打开文件的模式,a代表追加,也就是说,打开这个文件之后直接定位到文件的末尾 file open(chatlog.txt, "a") # 写入数据 file.write(ask:prompt_text\n) file.write(response:response\n) # 关闭文件 fil…

基于SSM的水果网上商城设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

Ubuntu 安装常见问题

1. 安装oh my zsh 搜狗输入法不能用 vim /etc/environmentexport XIM_PROGRAMfcitx export XIMfcitx export GTK_IM_MODULEfcitx export QT_IM_MODULEfcitx export XMODIFIERS“imfcitx” export LANG“zh_CN.UTF-8”配置完后重启,稍等一会,右上角会有个…

35 字段类型不匹配 影响 使用索引?

前言 这是一个经常能够看到的问题, 又或者 经常在面试中碰到 如果 索引字段类型 不匹配, 然后 不会使用索引 这里 我们来看一下 具体的情况 测试表结构如下 CREATE TABLE tz_test (id int(11) unsigned NOT NULL AUTO_INCREMENT,field1 varchar(128) DEFAULT NULL,PRIMA…

接口自动化测试之Fiddler使用教程

一、Fiddler 简介 Fiddler工具介绍 Fiddler是一个通过代理的方式来进行抓包工具,运行时会在本地建立一个代理服务,默认地址:127.0.0.1:8888。Fiddler开启之后,配置本机代理,再打开IE浏览器,IE的PROXY会自…

C语言与C++的区别和联系

C语言和C到底是什么关系? 首先C和C语言本来就是两种不同的编程语言,但C确实是对C语言的扩充和延伸,并且对C语言提供后向兼容的能力。对于有些人说的“C完全就包含了C语言”的说法也并没有错。 C一开始被本贾尼斯特劳斯特卢普(Bja…