本文告诉大家如何加载 .NET Core 或 .NET 5 的 sos.dll 文件到 WinDbg 的方法

和 .NET Framework 或 dotnet core 2.0 不相同的是,当前的 sos.dll 是放在独立的 https://github.com/dotnet/diagnostics 仓库里面,也需要独立安装。好在 sos 通过 dotnet tool 进行分发,安装方法非常简单

请通过如下命令行命令进行安装

dotnet tool install -g dotnet-sos

以上是添加 dotnet sos 工具,接下来还需要调用此工具进行安装,请在命令行输入下面命令进行安装

dotnet sos install

如安装成功,那么大概会输出以下内容

Installing SOS to C:\Users\lindexi\.dotnet\sos
Creating installation directory...
Copying files from C:\Users\lindexi\.dotnet\tools\.store\dotnet-sos\5.0.236902\dotnet-sos\5.0.236902\tools\netcoreapp2.1\any\win-x64
Copying files from C:\Users\lindexi\.dotnet\tools\.store\dotnet-sos\5.0.236902\dotnet-sos\5.0.236902\tools\netcoreapp2.1\any\lib
Execute '.load C:\Users\lindexi\.dotnet\sos\sos.dll' to load SOS in your Windows debugger.
SOS install succeeded

如上面提示,当前可以在 WinDbg 通过如上命令进行加载 sos 文件

.load C:\Users\linde\.dotnet\sos\sos.dll

但是此文件默认是 x64 的,如果期望调试的应用是 x86 的,那么以上命令将会提示如下错误

.load C:\Users\linde\.dotnet\sos\sos.dll

The call to LoadLibrary(C:\Users\lindexi\.dotnet\sos\sos.dll) failed, Win32 error 0n193
"%1 不是有效的 Win32 应用程序。

此时的解决方法是去获取 x86 版本的 sos.dll 如下面命令

.load C:\Users\lindexi\.dotnet\tools\.store\dotnet-sos\5.0.236902\dotnet-sos\5.0.236902\tools\netcoreapp2.1\any\win-x86\sos.dll

需要自己去找放在 C:\Users\lindexi\.dotnet\tools\.store\dotnet-sos\ 文件夹的对应的 dotnet 版本的 sos 的 win-x86 版本的文件

WinDbg 加载 dotnet core 的 sos.dll 辅助调试方法的更多相关文章

  1. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)0-------通过应用程序域AppDomain加载和卸载程序集

    本博客中以“C#.Net 如何动态加载与卸载程序集(.dll或者.exe)”开头的都是引用莫问奴归处 微软装配车的大门似乎只为货物装载敞开大门,却将卸载工人拒之门外.车门的钥匙只有一把,若要获得还需要 ...

  2. visual studio 调试时提示 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。

    问题描述 “Win32Project3.exe”(Win32): 已加载“D:\software\VS2013\VS2013 文档\Win32Project3\Debug\Win32Project3. ...

  3. 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。

    “Win32Project3.exe”(Win32): 已加载“D:\software\VS2013\VS2013 文档\Win32Project3\Debug\Win32Project3.exe”. ...

  4. 已加载"C:\Windows\SysWOW64\msvcp120d.dll".无法查找或打开 PDB 文件.

    已加载"C:\Windows\SysWOW64\msvcp120d.dll".无法查找或打开 PDB 文件. 今天使用vs2013遇到了这样的问题. 解决方案: 点调试. 然后选项 ...

  5. 百度编辑器ueditor 异步加载时,初始化没办法赋值bug解决方法

    百度编辑器ueditor 异步加载时,初始化没办法赋值bug解决方法 金刚 前端 ueditor 初始化 因项目中使用了百度编辑器——ueditor.整体来说性能还不错. 发现问题 我在做一个编辑页面 ...

  6. 用UBOOT自带loadb命令加载应用程序到SDRAM中运行的方法

    S3C44B0开发板中,用UBOOT自带loadb命令加载应用程序到SDRAM中运行的方法    1.开发板说明:  开发板上已有移植好的UBOOT运行.   2.交叉编译工具链为arm-linu-g ...

  7. windbg加载sos.dll

    SOS.dll 中提供的 Son of Strike 扩展 (SOS),用于调试 WinDbg 中的托管代码.在启动了调试程序并将其附加到托管进程(或加载故障转储) .load C:\Windows\ ...

  8. WinDbg加载不同版本CLR

    WinDbg调试.net2.0和.net4.0程序有所不同,因为.net4.0使用新版本的CLR.例如: mscoree.dll 变为 mscoree.dll 和 mscoreei.dll, msco ...

  9. windbg加载符号表

    0x00 前言 在使用windbg调试windows中的程序时会经常碰到一些系统的dll里面的一些函数调用,有些函数是没有具体函数名的,这对于调试非常不利,基于此,微软针对windows也发布了很多系 ...

  10. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)4-----Net下的AppDomain编程 [摘录]

    最近在对AppDomain编程时遇到了一个问题,卸载AppDomain后,在内存中还保留它加载的DLL的数据,所以即使卸载掉AppDomain,还是无法更新它加载的DLL.看来只有关闭整个进程来更新D ...

随机推荐

  1. module 'numpy' has no attribute 'bool'

    module 'numpy' has no attribute 'bool' 问题: Traceback (most recent call last): File "/home/test. ...

  2. Mybatis使用JDBC实现数据库批量添加

    1.spring注入数据源 @Resource(name = "dataSource") private DataSource dataSource; 2.连接数据库批量添加 pu ...

  3. Generalized Focal Loss:Focal loss魔改以及预测框概率分布,保涨点 | NeurIPS 2020

    为了高效地学习准确的预测框及其分布,论文对Focal loss进行拓展,提出了能够优化连续值目标的Generalized Focal loss,包含Quality Focal loss和Distrib ...

  4. Kingbase ES 自定义聚合函数浅析

    文章概要: 基于前面的博文<Kingbase ES 自定义聚合函数和一次改写案例>这篇文章,我们只考虑了自定义聚合函数非并行的情况, 因此,本篇文章将着重解析一下使用PLPGSQL编写并行 ...

  5. 高德地图和echarts结合实现地图下钻(一)

    疫情大屏优化-ECharts 地图下钻功能实现 https://www.sohu.com/a/373917631_100123073   全国:100000                北京:110 ...

  6. #差分约束系统#CodeChef Digit Matrix&洛谷 7515 [省选联考 2021 A 卷] 矩阵游戏

    洛谷传送门 DGMATRIX 分析 先任意构造出一个不一定满足值域的矩阵,现在只需要满足值域就可以了. 可以发现,给一行或一列依次加一减一2*2矩阵的和仍然不变,并且如果有解一定能构造出一组方案. 因 ...

  7. 【直播回顾】OpenHarmony 3.1 Release版本南北向关键能力解读

    OpenHarmony 3.1 Release版本发布后,广大开发者们纷纷开始上手体验新版本的功能.但随之而来的一系列问题,摆在了大家的面前:OpenHarmony 3.1这一版本,都有哪些重要的能力 ...

  8. mysql系列之杂谈(一)

    从刚开始工作到现在,除了实习的时候在国企用过oracle,毕业之后陪伴我的数据库一直都是mysql,而由于mysql的开源特性,也让成为无数公司的宠儿,越走越远. 我们在刚开始使用mysql时,会发现 ...

  9. python读取ini配置文件-configparser使用方法

    我们在操作 ini 配置文件的时候 可以使用 Python 的 configparser 库 具体使用方法如下: from configparser import ConfigParser # 初始化 ...

  10. 收藏 | 超详细的Oracle19c安装步骤-CentOS Linux

    ORACLE学习-DBA数据库工程师 收藏 | 超详细的Oracle19c安装步骤 挨踢-IT人加油 [微思网络]IT培训-思科/华为/红帽/ORACLE... 2 人赞同了该文章 DBA数据库管理必 ...