/RazorSharp

Low-level utilities and tools for working with the CLR and memory.

Primary LanguageC#

RazorSharp

nuget nuget dl

Icon

Low-level utilities and tools for working with the CLR, CLR internal structures, and memory.

Notice

For a new and improved .NET 5 implementation, see Novus.

Goals

RazorSharp aims to provide functionality similar to that of ClrMD, WinDbg SOS, and Reflection but in a more detailed fashion while also exposing more underlying metadata and CLR functionality.

RazorSharp also allows for manipulation of the CLR and low-level operations with managed objects. Additionally, RazorSharp doesn't require attachment of a debugger to the process to acquire metadata. All metadata is acquired through memory or low-level functions.

Usage

Some structures of RazorSharp must be set up to use certain features. Their respective type initializers and constructors should do this automatically, but this is still being tested as static initialization can be tricky.

Features

  • Calculating heap size of managed objects
  • Taking the address of managed objects
  • Pointer to managed types
  • Pinning unblittable objects
  • And much more

Compatibility

  • 64-bit (only partial 32-bit support)
  • Windows
  • .NET CLR
  • .NET Framework 4.7.2
  • Workstation GC

License

Icons made by Freepik