Microsoft.Diagnostics.Runtime 0.8.31-beta

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
This is a prerelease version of Microsoft.Diagnostics.Runtime.
There is a newer version of this package available.
See the version list below for details.

Requires NuGet 2.5 or higher.

dotnet add package Microsoft.Diagnostics.Runtime --version 0.8.31-beta
NuGet\Install-Package Microsoft.Diagnostics.Runtime -Version 0.8.31-beta
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Microsoft.Diagnostics.Runtime" Version="0.8.31-beta" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Microsoft.Diagnostics.Runtime --version 0.8.31-beta
#r "nuget: Microsoft.Diagnostics.Runtime, 0.8.31-beta"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Microsoft.Diagnostics.Runtime as a Cake Addin
#addin nuget:?package=Microsoft.Diagnostics.Runtime&version=0.8.31-beta&prerelease

// Install Microsoft.Diagnostics.Runtime as a Cake Tool
#tool nuget:?package=Microsoft.Diagnostics.Runtime&version=0.8.31-beta&prerelease

ClrMD is a set of advanced APIs for programmatically inspecting a crash dump of a .NET program much in the same way that the SOS Debugging Extensions (SOS) do. This allows you to write automated crash analysis for your applications as well as automate many common debugger tasks. In addition to reading crash dumps ClrMD also allows supports attaching to live processes.

Product Compatible and additional computed target framework versions.
.NET Framework net40 is compatible.  net403 was computed.  net45 was computed.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (36)

Showing the top 5 NuGet packages that depend on Microsoft.Diagnostics.Runtime:

Package Downloads
BenchmarkDotNet The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

Powerful .NET library for benchmarking

ppy.osu.Framework

A 2D application/game framework written with rhythm games in mind.

Backtrace

Backtrace's integration with C# applications allows customers to capture and report handled and unhandled C# exceptions to their Backtrace instance, instantly offering the ability to prioritize and debug software errors.

Phoesion.Glow.SDK.Firefly.SrvHost.DotNet.Dependencies The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

Phoesion Glow SDK Firefly SrvHost Runner (DotNet) Dependencies

DynaMD

Helper objects to browse complex structures returned by ClrMD

GitHub repositories (36)

Showing the top 5 popular GitHub repositories that depend on Microsoft.Diagnostics.Runtime:

Repository Stars
dnSpy/dnSpy
.NET debugger and assembly editor
winsw/winsw
A wrapper executable that can run any executable as a Windows service, in a permissive license.
dotnet/BenchmarkDotNet
Powerful .NET library for benchmarking
xoofx/markdig
A fast, powerful, CommonMark compliant, extensible Markdown processor for .NET
microsoft/perfview
PerfView is a CPU and memory performance-analysis tool
Version Downloads Last updated
3.1.512801 14,179 2/29/2024
3.1.506101 16,811 2/1/2024
3.1.456101 39,544 11/13/2023
3.1.456003 11,486 11/11/2023
3.1.455904 1,689 11/10/2023
3.0.442202 40,745 8/22/2023
3.0.0-beta.23214.4 1,200 4/17/2023
3.0.0-beta.23177.1 232 3/28/2023
3.0.0-beta.23165.1 216 3/16/2023
3.0.0-beta.23159.4 163 3/9/2023
3.0.0-beta.23158.2 157 3/9/2023
3.0.0-beta.23156.1 140 3/6/2023
2.4.416101 751,666 3/12/2023
2.3.405304 89,267 1/5/2023
2.2.343001 74,090 10/31/2022
2.2.332302 8,595,366 6/23/2022
2.2.332001 4,041 6/20/2022
2.1.327703 13,949 5/27/2022
2.0.226801 2,695,450 5/19/2021
2.0.226401 996 5/14/2021
2.0.222201 53,994 4/22/2021
2.0.221201 7,292 4/14/2021
2.0.217201 50,997 3/22/2021
2.0.161401 983,000 12/14/2020
2.0.156101 33,863 11/18/2020
2.0.151903 24,717 10/19/2020
2.0.145301 86,369 9/4/2020
2.0.142701 6,219 8/28/2020
2.0.142501 1,591 8/25/2020
2.0.142103 1,652 8/21/2020
2.0.141902 5,710 8/19/2020
2.0.137201 25,155 7/22/2020
2.0.130507 43,390 6/6/2020
2.0.0-rc.20303.6 420 6/4/2020
2.0.0-rc.20278.6 503 5/28/2020
2.0.0-beta.20276.4 343 5/27/2020
2.0.0-beta.20273.1 405 5/23/2020
2.0.0-beta.20272.2 423 5/22/2020
2.0.0-beta.20272.1 342 5/22/2020
2.0.0-beta.20268.2 423 5/18/2020
2.0.0-beta.20230.2 488 4/30/2020
2.0.0-beta.20230.1 351 4/30/2020
2.0.0-beta.20229.3 351 4/30/2020
2.0.0-beta.20223.2 346 4/23/2020
2.0.0-beta.20222.8 318 4/23/2020
2.0.0-beta.20222.7 311 4/23/2020
2.0.0-beta.20222.5 320 4/22/2020
2.0.0-beta.20220.3 331 4/20/2020
2.0.0-beta.20213.1 461 4/13/2020
2.0.0-beta.20174.2 452 3/24/2020
2.0.0-beta.20072.5 728 1/23/2020
2.0.0-beta.19618.7 492 12/19/2019
2.0.0-beta.19612.8 383 12/12/2019
1.1.142101 239,814 8/21/2020
1.1.132302 12,888 6/23/2020
1.1.127808 86,520 5/29/2020
1.1.126102 7,297,987 5/17/2020
1.1.122004 53,883 4/20/2020
1.1.116301 46,399 3/13/2020
1.1.61812 85,980 12/19/2019
1.1.57604 4,736,420 11/26/2019
1.1.57004 5,355 11/20/2019
1.1.46104 118,113 9/11/2019
1.1.37504 73,744 7/25/2019
1.1.35902 7,593 7/9/2019
1.1.35504 1,825 7/5/2019
1.0.5 1,490,654 3/19/2019
1.0.3 183,130 2/13/2019
1.0.2 23,948 12/17/2018
1.0.0 15,171 11/22/2018
0.9.180305.1 267,141 3/6/2018
0.9.170809.3 178,540 8/9/2017
0.9.170626.1 22,527 6/26/2017
0.8.31-beta 698,819 10/15/2015
0.8.30-beta 6,527 9/16/2015
0.8.27-beta 40,690 9/30/2014
0.8.26-beta 1,918 8/14/2014
0.8.25-beta 3,330 3/12/2014
0.8.24-aamain00309 1,389 12/2/2014
0.7.1-beta 3,470 5/3/2013

Since the last release, I have made two major changes to the API.

First, I have reworked the SymbolLocator class.  I had to rush out the last version so that we could ship sources, and that class was in an incomplete state.  It has been subsequently reworked into a new design.

Second, as part of the effort to (finally) release 1.0 of the library and get it out of beta (which hasn't happened yet), I have marked some commonly used APIs with the [Obsolete] attribute.  Virtually no functionality has been removed, only that APIs have been renamed or moved within the runtime.  The one exception is that ClrMD is moving away from doing symbol resolution (File and Line number).  This means GetSourceLocationForOffset and related functions no longer work.  Instead, I have implemented a sample you can find here:  https://github.com/Microsoft/clrmd/blob/master/src/FileAndLineNumbers/Program.cs

Note that all methods marked [Obsolete] will be removed in the next NuGet release (but I do not plan to do another release for a little while).  I appologize in advance for any incovenience this causes.  After years of active development, some API dead-ends have inevitably crept into the library, and need to be removed before 1.0 is released.

Aside from various bugfixes, here are some noteworthy changes in this release:

1.  I've added Async APIs for symbol resolution/download, and the SymbolLocator class is now thread safe.  You can now download symbols asynchronosly and in parallel.
2.  Added basic support for converting CLR internal structures (MethodDescs, MethodTables, EEClass, etc) to and from ClrMD types and methods.
3.  Add a way to get information about the Shared and System domains.
4.  Completely remove the dependency on msdia120.dll and DiaLib.dll.  Added a managed PDB reader to do this work instead.  ClrMD currently has no dependencies on any other library (that doesn't come with windows anyway).