/JitBuddy

Disassemble to x86/x64 ASM listing the native code generated by the JIT of a managed method.

Primary LanguageC#BSD 2-Clause "Simplified" LicenseBSD-2-Clause

JitBuddy Build status NuGet

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

Usage

var method = ...; // Get a MethodInfo via typeof(XXX).GetMethod(...)
var asm = method.ToAsm();

License

This software is released under the BSD-Clause 2 license.

Credits

JitBuddy is a one file simple wrapper of the following amazing library:

The Logo processor by ibrandify from the Noun Project

Author

Alexandre Mutel aka xoofx.