JitInspect 1.0.3
.NET 6.0
This package targets .NET 6.0. The package is compatible with this framework or higher.
.NET Standard 2.1
This package targets .NET Standard 2.1. The package is compatible with this framework or higher.
dotnet add package JitInspect --version 1.0.3
NuGet\Install-Package JitInspect -Version 1.0.3
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="JitInspect" Version="1.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="JitInspect" Version="1.0.3" />
<PackageReference Include="JitInspect" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add JitInspect --version 1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: JitInspect, 1.0.3"
#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.
#:package JitInspect@1.0.3
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=JitInspect&version=1.0.3
#tool nuget:?package=JitInspect&version=1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
JitInspect
JitInspect disassembles JIT compiled managed methods to a x86/x64/Arm64 ASM. Inspired by JitBuddy
NuGet
https://www.nuget.org/packages/JitInspect
dotnet add package JitInspect
Usage
using JitInspect;
TestMethod(1, 1);
var action = TestMethod;
Console.WriteLine(action.Method.Disassemble(maxRecursiveDepth: 1, printSource: true));
static void TestMethod(int a, int b)
{
for (int i = 0; i < a; i++)
Console.WriteLine(a + b);
}
Output: 2
; Program.<<Main>$>g__TestMethod|0_0(Int32, Int32)
push rbp
sub rsp,70
lea rbp,[rsp+70]
xor eax,eax
mov [rbp-3C],eax
mov [rbp+10],ecx
mov [rbp+18],edx
; for (int i = 0; i < a; i++)
; ^^^^^^^^^
xor eax,eax
mov [rbp-3C],eax
mov dword ptr [rbp-48],3E8
jmp short M00_L01
M00_L00:
mov rcx,7FFF7F562790
call CORINFO_HELP_COUNTPROFILE32
; Console.WriteLine(a + b);
; ^^^^^^^^^^^^^^^^^^^^^^^^^
mov eax,[rbp+10]
mov ecx,eax
add ecx,[rbp+18]
call qword ptr [7FFF7F5446C0]; System.Console.WriteLine(Int32)
mov eax,[rbp-3C]
inc eax
mov [rbp-3C],eax
M00_L01:
mov eax,[rbp-48]
dec eax
mov [rbp-48],eax
cmp dword ptr [rbp-48],0
jg short M00_L02
lea rcx,[rbp-48]
mov edx,10
call CORINFO_HELP_PATCHPOINT
M00_L02:
mov eax,[rbp-3C]
cmp eax,[rbp+10]
jl short M00_L00
mov rcx,7FFF7F562794
call CORINFO_HELP_COUNTPROFILE32
nop
add rsp,70
pop rbp
ret
; Total bytes of code 130
; System.Console.WriteLine(Int32)
push rbx
sub rsp,20
mov ebx,ecx
call qword ptr [7FF8C9EE4930]
mov rcx,rax
mov edx,ebx
lea r11,[System.IO.ConsoleStream.get_CanSeek()]
cmp [rcx],ecx
call qword ptr [r11]
nop
add rsp,20
pop rbx
ret
; Total bytes of code 37
Credits
LICENSE
MIT
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- Gee.External.Capstone (>= 2.3.0)
- Iced (>= 1.17.0)
- JetBrains.Annotations (>= 2024.3.0)
- Microsoft.Diagnostics.Runtime (>= 3.1.512801)
- Microsoft.Diagnostics.Tracing.TraceEvent (>= 3.1.23)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.0)
-
net6.0
- Gee.External.Capstone (>= 2.3.0)
- Iced (>= 1.17.0)
- JetBrains.Annotations (>= 2024.3.0)
- Microsoft.Diagnostics.Runtime (>= 3.1.512801)
- Microsoft.Diagnostics.Tracing.TraceEvent (>= 3.1.23)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on JitInspect:
Package | Downloads |
---|---|
MRubyCS.ConsoleApp
A new mruby virtual machine implemented in C#. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on JitInspect:
Repository | Stars |
---|---|
hadashiA/MRubyCS
A new mruby virtual machine implemented in C#.
|