JitBuddy provides a small helper method to disassemble to a x86/x64 ASM listing the native code generated by the JIT of a managed method.
using System;
using System.Reflection;
using JitBuddy;
namespace JitBuddyExample
{
public class Program
{
public static int Add(int a, int b)
{
return a + b;
}
static void Main()
{
var method = typeof(Program).GetMethod("Add", BindingFlags.Public | BindingFlags.Static);
Console.WriteLine(method.ToAsm());
}
}
}
will produce the following output:
00007FFD515B3FB0 lea eax,[rcx+rdx]
00007FFD515B3FB3 ret
var method = ...; // Get a MethodInfo via typeof(XXX).GetMethod(...)
var asm = method.ToAsm();
This software is released under the BSD-Clause 2 license.
JitBuddy is a one file simple wrapper of the following amazing library:
Iced
for the disassembler part.clrmd
akaMicrosoft.Diagnostics.Runtime
The Logo processor
by ibrandify from the Noun Project
Alexandre Mutel aka xoofx.