Dudi Keleti
I work on .NET diagnostics at Datadog: CLR profiling, runtime instrumentation, and developer tooling.
I write about how .NET works underneath: IL, the runtime, the C# compiler, and the tools for debugging and diagnosing .NET applications.
Featured
The object header gets complicated
The CLR object header bit by bit: thin locks, sync block indexes, hash codes, and the difference between thin and fat locks.
Recent writing
Writing IL according to the specification
Writing IL that matches what the C# compiler emits: how is, as, casts, and generic constraints turn into box, isinst, and castclass.
How to inspect a MethodSpec signature without code
What a MethodSpec is in .NET metadata, how its signature is encoded in the blob stream, and how to read it with dnSpy or CFF Explorer.
C# behind the scenes
The introduction to a series on the code the C# compiler generates for language features such as yield and local functions.
C# behind the scenes: Local functions
How the C# compiler turns local functions into ordinary methods, and how captured variables move into a generated display struct.