Skip to content
VS2019 Add-in. Click on any method or class to see what .NET Core's JIT generates for them (ASM).
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
images
src Add "update is available" feature Mar 15, 2019
.gitignore Initial commit Jan 28, 2019
Disasmo.sln Small refactoring Feb 5, 2019
LICENSE Initial commit Jan 28, 2019
README.md Update README.md Feb 6, 2019

README.md

Disasmo

VS2019 Add-in. Click on any method or class to see what .NET Core's JIT generates for them (ASM).

demo

The Add-in targets .NET Core contributors so it assumes you already have CoreCLR local repo. If you don't have it, the steps to obtain and configure it are:

git clone git@github.com:dotnet/coreclr.git
cd coreclr
build release skiptests
build debug skiptests

We have to build it twice because we need mostly release files and a debug version of clrjit.dll. For more details visit viewing-jit-dumps.md. The Add-in basically follows steps mentioned in the doc above:

dotnet restore
dotnet publish -r win-x64 -c Release
set COMPlus_JitDisasm=%method%
ConsoleApp123.exe

In order to be able to disasm any method (even unused) the add-in injects a small line to the app's Main():

System.Runtime.CompilerServices.RuntimeHelpers.PrepareMethod(%methodHandle%);

However, you can use BenchmarkDotNet-style disassembler without any local CoreCLR, just enable it in "Settings/Use BDN disasm".

Known Issues

  • Only .NET Core Console applications are supported
  • I only tested it for .NET Core 3.0 apps
  • Multi-target projects are not supported
  • Generic methods are not supported
  • Resharper hides Roslyn actions by default (Uncheck "Do not show Visual Studio Light Bulb").

3rd party dependencies

You can’t perform that action at this time.