【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

CLR Memory Diagnostics 支持自动化检查任务

  • 2013-06-13
  • 本文字数:887 字

    阅读完需:约 3 分钟

微软最近发布了 Microsoft.Diagnostics.Runtime 组件,该组件在 NuGet 包管理器中被称作 ClrMD,支持开发者自动化检查任务及访问更多调试信息。它是一组高级 API,用于以编程方式检查.NET 程序的崩溃转储文件,和 SOS Debugging Extensions (SOS.dll)差不多,它支持为应用程序编写自动化的崩溃分析,还支持将很多常见调试器任务的自动化。

要使用 ClrMD 组件,需要创建 DataTarget 类的一个实例,它或者表示一个崩溃转储文件,或者表示一个正在运行的.NET 进程。创建完毕之后,必须调用 TryGetDacLocation() 方法,该方法试图在当前这台机器上找到匹配的 DAC。不过,如果当前机器上没有安装匹配的 CLR,可以从已安装的机器上把 DAC 复制过来,只需要手动把对应的 mscordacwks.dll 的路径提供给 CreateRuntime() 方法。

之后可以利用运行时对象来检查 GC 堆的内容,它会产生下面这样的输出:

23B1D30 36 System.Security.PermissionSet
23B1D54 20 Microsoft.Win32.SafeHandles.SafePEFileHandle
23B1D68 32 System.Security.Policy.PEFileEvidenceFactory
23B1D88 40 System.Security.Policy.Evidence

现在开发者有了输出堆统计信息所需要的数据,输出可以通过这种方式进行——使用 LINQ 查询将堆信息按类型分组,按总的对象大小排序。产生的输出类似下面这样:

564 11 System.Int32[]
616 2 System.Globalization.CultureData
680 18 System.String[]
728 26 System.RuntimeType
790 7 System.Char[]
5,788 165 System.String
17,252 6 System.Object[]

ClrMD 也支持检索 GC 堆的一般信息、遍历 CLR 的句柄表和进程中的应用域及识别加载了哪些模块。除了收集.NET 运行时所使用的各种堆相关的数据,它还支持枚举线程、这些线程的调用栈、线程上最后抛出的异常及进程的对象根。包括在 ClrMD 包组件中的智能感知支持开发者探索各种复杂的属性和函数。

除上述特性外,ClrThread 对象包含了一个 CurrentException 属性,还包含了完整的栈跟踪信息及所抛出异常的消息和类型。CurrentException 属性可能为空,如果为空,它会包含当前线程最后抛出的异常。

查看英文原文: CLR Memory Diagnostics Enables you to Automate Inspection Tasks

2013-06-13 06:271006
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 130.1 次阅读, 收获喜欢 34 次。

关注

评论

发布
暂无评论
发现更多内容

GoodTask for Mac(日历任务管理工具)v7.6.4中文激活版

iMac小白

在Go中构建复杂对象: 构建器模式指南

俞凡

golang 设计模式

Medis for Mac(可视化管理工具)v2.13.0激活版

影影绰绰一往直前

糟了,数据库崩了,又好像没崩

越长大越悲伤

MySQL MySQL 8.0

云原生微服务的SWOT分析

俞凡

微服务 云原生

JProfiler for Mac(Java开发分析软件)v14.0.0永久激活版

影影绰绰一往直前

Termius for Mac(SSH客户端)v8.4.0激活版

影影绰绰一往直前

FlowJo 10 for Mac(流式细胞分析软件)v10.4激活版

影影绰绰一往直前

[大厂实践] Netflix容器平台内核panic可观察性实践

俞凡

Kubernetes netflix 大厂实践

文心一言 VS 讯飞星火 VS chatgpt (148)-- 算法导论12.2 3题

福大大架构师每日一题

福大大架构师每日一题

MediaInfo for mac(媒体信息检测软件)v23.11免激活版

iMac小白

SecureCRT for mac(终端SSH工具)v9.3.2激活版

影影绰绰一往直前

URL Manager Pro for Mac(浏览器标签管理应用)v6.4激活版

iMac小白

再也不怕面试官问缓存雪崩、缓存击穿、缓存穿透了

程序员花卷

缓存 后端 缓存雪崩 布隆过滤器 可靠性设计

iA Writer for Mac(mac好用的写作软件)v7.0.0中文激活版

影影绰绰一往直前

JixiPix PuzziPix Pro for mac(强大的拼图软件)v1.0.20激活版

影影绰绰一往直前

JetBrains PhpStorm 2023 for Mac(PHP集成开发)v2023.2.4中文激活版

影影绰绰一往直前

抖音商品详情接口在电商行业中的重要性及实时数据获取实现

Noah

Studio One 6 Pro for mac(音乐创作编辑软件)v6.2.0永久激活版

影影绰绰一往直前

EdgeView 4 for Mac(快速图像查看器)v4.4激活版

iMac小白

OmniReader Pro for Mac(图书阅读器) 2.6.2密码激活版

mac

苹果mac Windows软件 OmniReader Pro 阅读软件

Apeaksoft iPhone Eraser for Mac(iPhone数据清除工具)v1.0.20免激活版

iMac小白

03 | 复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?

鲁米

[大厂实践] Pinterest通用计算平台实践

俞凡

架构 Kubernetes 云原生 大厂实践 Pinterest

选择适合您网站的 SQL 托管:MS SQL Server、Oracle、MySQL

小万哥

MySQL 数据库 程序员 sql 后端开发

Proxifier for mac(全局代理客户端)稳定版v3.11激活版

影影绰绰一往直前

抖音订单接口在电商行业中的重要性及实践应用

Noah

04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度

鲁米

Magic Disk Cleaner for mac(磁盘垃圾清理工具)v2.5.3激活版

iMac小白

OmniReader Pro for mac(全能阅读器)v2.6.2激活版

iMac小白

架构师的三类工作

agnostic

CLR Memory Diagnostics支持自动化检查任务_语言 & 开发_Anand Narayanaswamy_InfoQ精选文章