WinDbg Preview简单使用

article/2025/10/16 5:29:14

WinDbg Preview简单使用

  • CLR程序调试入门
  • dump包的抓取
    • Windows
    • Linux
  • 基本dump包分析
  • SOS 调试扩展
    • 获取对应的clr.dll以及sos.dll
    • 加载基于sos的符号
    • 加载sos异常及处理方法

CLR程序调试入门

程序不光要能跑,还要能一直稳定的跑。前段时间线上接口时不时就会整体Down一下,性能非常不稳定,通过多方摸索,尝试才找到原因。不从细节直接入手,出现问题就会手忙脚乱,不能在短时间内解决。

dump包的抓取

Windows

直接在任务管理器里面,选中对应的进程,右键->创建转储文件 即可。

Linux

首先需要安装抓取dump的工具:

dotnet tool install -g dotnet-dump

然后找到需要抓取dump包的进程的,NetCore程序可以通过一下命令查看(dotnet可以修改程启动进程的命令,模糊匹配):

ps -aux |grep dotnet

使用安装的工具dotnet-dump即可抓取对应进程的dump:

dotnet-dump collect --process-id <PID>

基本dump包分析

安装Windbg Preview,可以直接在Windows的应用商店Microsoft Store搜索WinDbg,然后直接安装即可。

安装完毕打开如图:
](https://img-blog.csdnimg.cn/81fd816dfe4b498a8c103922e1d6c301.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI1NDA3Nzcx,size_16,color_FFFFFF,t_70)

配置微软公有符号,配置路径如下,路径填写SRV*C:\mysymbols*http://msdl.microsoft.com/download/symbols 即可
在这里插入图片描述

点击文件,然后点击下图框出来的地方,选择抓取的dump文件,即可进行分析。
在这里插入图片描述
打开之后,进入到如下命令行页面,会展示一些dump包基本的信息,以及提示,可以通过 !analyze -v 进行进一步的分析。
在这里插入图片描述

调试器命令可以参照微软官方文档调试命令

SOS 调试扩展

获取对应的clr.dll以及sos.dll

想要获取进一步的分析,就需要加载coreclr.dll(clr.dll–framework程序)以及sos.dll进行进一步的分析。
由于不通版本的程序coreclr.dll(clr.dll)以及sos.dll不一样,所以每次分析的时候,需要根据抓取dump包的程序的目标框架,选择不同的版本。
首先,可以通过一下命令查看到对应的coreclr.dll版本,然后通过下面的方法找到对应的coreclr以及sos。

lmv -mcoreclr

framework的路径如下,路径里面第一层是机器位数,第二层是framework对应的版本,第三层就可以找到对应的clr.dll以及sos.dll:

C:\Windows\Microsoft.NET

netcore下的coreclr.dll以及sos.dll就比较复杂,NetCore的路径如下,路径下第一层即dotnet对应的版本,第二层可以直接找到对应的coreclr.dll:

C:\Program Files\dotnet\shared\Microsoft.NETCore.App

但是sos.dll不一定能找到,NetCore3.0之前,可以直接找到,但是NetCore3.0之后,Sos.dll不会直接放在该文件夹下。不过里面有个SOS_README.md,内容如下:

SOS and other diagnostic tools now ship of band and work with any version of the .NET Core runtime.
SOS has moved to the diagnostics repo here: https://github.com/dotnet/diagnostics.git.
Instructions to install SOS: https://github.com/dotnet/diagnostics#installing-sos.

打开对应的github地址,找到如下地址https://github.com/dotnet/diagnostics/blob/main/documentation/sos.md,可以找到sos的安装方法。
Windows的安装方法如下【windows安装Sos】:
先安装对应的工具dotnet-sos,命令如下:

dotnet tool install -g dotnet-sos

然后执行dotnet-sos的安装命令:

dotnet-sos install

即可获取到对应的sos.dll,路径为:

 C:\Users\<对应的用户名>\.dotnet\sos

加载基于sos的符号

加载dll,可以通过**.load <dll地址>** :

  .load C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.23\sos.dll.load C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.23\coreclr.dll

加载完成之后,就可以通过 !clrstack -l 查看对应的clr堆栈调用情况。

配置完成之后,也可以使用基于Sos的调试命令。命令帮助可以使用 !SOS.help 查看,也可以参照微软官方文档SOS扩展调试
其他更多调试方法,也可以根据官方文档进行配置。

加载sos异常及处理方法

常见异常及处理方法可以参考一下文档常见异常


http://chatgpt.dhexx.cn/article/EePNTFky.shtml

相关文章

android studio preview 不显示

我们在使用android studio开发的时候&#xff0c;可以直接预览页面&#xff0c;右上角 preview 非常方便。 但是有时候我们会碰到一些问题 1.点开不显示预览画面 解决&#xff1a;默认第一次是不显示的&#xff0c;需要成功编译一次后可显示。如果编译后不显示 &#xff0c;…

VS Code Python预览插件Python preview的使用

VS Code Python预览插件的名称为Python preview&#xff0c;作者为dongli&#xff0c;当前版本0.0.4。该插件可提供简单的调试工具和代码预览。 安装与使用 安装 在插件搜索框输入Python preview安装。 简易使用 插件安装成功后&#xff0c;编辑器右上角将添加一个预览按钮…

Android Camera APP preview buffer 总体流程

文章目录 前言Camera preview 总体概括Establish snapdragon surfaceview surfaceCamera Device Create Preview Session Camera preview 详细流程Camera Buffer FlowCamera Service dequeue bufferGraphic buffer is transmit by binder to surfaceflinger process Display mo…

微软 Visual Studio 2022 Preview 3 发布

本文转载自IT之家 IT之家 8 月 13 日消息 时隔近一个月&#xff0c;微软终于发布了 Visual Studio 2022 Preview 3 版本&#xff0c;本次更新带来了关于个人和团队生产力、现代开发和不断创新为主题的新功能。 个人和团队生产力 在 Visual Studio 2022 Preview 3 中&#xff…

VMware Workstation创建Windows 10 Insider Preview (Release Preview Channel) - Build 19045.1826虚拟机

大家好&#xff0c;还记得我们上次干了什么&#xff1f;没错&#xff0c;我们创建了一个Windows 11 Insider Preview (Dev Channel) - Build 25179的虚拟机&#xff0c;那我们这次就来创建一个Windows 10 Insider Preview (Release Preview Channel) - Build 19045.1826的虚拟机…

VS code Markdown Preview Enhanced 预览白色改为黑色

VS code Markdown Preview Enhanced 预览白色改为黑色 1. 预览默认为白色2. 预览改为黑色参考 1. 预览默认为白色 2. 预览改为黑色 参考 Markdown Preview Enhanced doc

配置LiveServer时没有use browser preview设置栏目

在配置VScode显示html文件时&#xff0c;出现了use browser preview设置栏不存在&#xff1a; 在最新的VScode中&#xff1a; 由于此扩展已经弃用&#xff0c;所以在配置Live Server时只有20个设置项 解决方法&#xff1a; 打开Live Server扩展&#xff1a; 点击卸载下的下拉选…

Android 简单使用studio preview(预览)

简单使用studio preview&#xff08;预览&#xff09; 创建对应分辨率的设备 1.打开AVD Manager&#xff0c;开始创建所要适配的设备 2.添加硬件配置 3.添加屏幕尺寸和分辨率,其他默认即可。 4.创建完成以后&#xff0c;选择这个的硬件配置 5.接着选择一个System Image 6.…

windows11补充——Insider Preview 10.0.22623.1028 (ni_release)

大家好&#xff0c;我是涵子。大家应该知道了上次的windows11了吧&#xff01;这一次&#xff0c;我的电脑升级成了——Windows 11 Insider Preview 10.0.22623.1028 (ni_release)&#xff01;这个版本中的一些内容是关于windows12的&#xff01; 注意&#xff1a;本次文章较短…

Visual Studio Code实时预览插件live preview的安装和使用

初学前端时&#xff0c;要是频繁的预览写好的页面&#xff0c;未免会显得繁琐而且拉低学习效率。 这里推荐使用liver preview这个VScode插件&#xff0c;实现在VScode内部实现边写边预览的效果。 1.安装插件&#xff1a; 打开VScode》点击‘拓展’》搜索‘live preview’》点…

Preview和Response的结果不一样

背景 一般情况下我们看Network里面的Preview和Response的结果似乎一模一样。 不管是请求页面&#xff0c;请求页面还是请求js还是请求css&#xff0c;二者的结果都一样。 在Preview中&#xff0c;控制台会把发送过来的json数据自动转换成javascript的对象格式&#xff1b; …

Visual Studio 2022 Preview 1 和.NET 6 Preview 5 正式发布

具有里程碑意义的Visual Studio 2022 Preview 1正式发布&#xff0c;重点是64位&#xff0c;而没有增加新功能&#xff0c;并且同时也发布了.NET 6 Preview 5。 https://devblogs.microsoft.com/visualstudio/visual-studio-2022-preview-1-now-available/https://devblogs.mic…

关于Preview和Snapshot的Crop问题

preview的crop问题 这个问题其实有点乌龙&#xff0c;因为crop是在IPEnode进行处理的&#xff0c;我开始一直以为是IPE进行了裁剪才导致我最后的输出有问题&#xff0c;最后的原因竟然是因为chi node的输出的port导致我输出到IPE的buffer的size就已经小了。 我们有个问题&…

Android 14 Developer Preview一览

本文同步发表于我的微信公众号&#xff0c;扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注&#xff0c;每个工作日都有文章更新。 不久之前&#xff0c;Google公开了Android 14的首个Developer Preview版本。 按照Google正常的节奏&#xff0c;每年年初会发布两个Develope…

IDEA开启预览选项--enable-preview

最近在研究loom&#xff0c;我的idea版本是2022.5&#xff08;2023.1开始支持jdk20&#xff0c;低版本需要自己调&#xff09; 用到了预览功能 virtualThread报错 is a preview API and is disabled by default. 但是改了sdk到20也一直提示报错 看编译参数是把--source 20 …

VSCode图片预览插件 Image preview

VSCode前端开发图片预览插件 Image preview&#xff08;支持css预览 支持svg格式&#xff09; 一款提高前端开发效率的插件 &#xff0c;代码中hover直接预览图片 先上效果图 不仅html中可以预览 js代码里的引用也可以识别 同理css中的图片引用也可以识别 功能详情 安装步骤…

vue docx-preview实现docx文件在线预览

之前一般做项目进行文件浏览的时候基本都是用的window.openurl的形式打开文件&#xff0c;进行浏览操作的&#xff0c;但是这种打开方式只能够在线浏览如jpg、png、pdf这类文件&#xff0c;对于文档类型docx这种则是用下载的方式打开的。这次甲方爸爸不想要下载了&#xff0c;于…

ProviewR

1. ProviewR开源过程控制系统介绍 李工&#xff1a;https://www.bilibili.com/video/BV1qu41117jd/?spm_id_from333.788 北岛李工&#xff1a;开源过程控制系统ProviewR初体验——Modbus-TCP通信_哔哩哔哩_bilibili ProviewR官网&#xff1a;http://www.proview.se/v3/index.p…

Compose中的预览@Preview与@PreviewParameter的使用

文章目录 前言一、Preview二、PreviewParameter1.单个参数2.多个参数 前言 阅读本文需要一定compose基础&#xff0c;如果没有请移步Jetpack Compose入门详解&#xff08;实时更新&#xff09; 本文介绍Preview与PreviewParameter注解的使用 一、Preview 如果你构建了一个Co…

最新版Android Studio如何preview

之前看到有的博客里写到&#xff0c;Android Studio有个preview功能特别好用&#xff0c;可以边写代码边预览&#xff0c;类似下图这样的&#xff1a;&#xff08;图片来源&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/20855561&#xff09; 之前的And…