A faster and safer way to read .NET performance counters from within.
Part 2 of the series about using NativeAOT to write a .NET profiler in C#, learning many things about native interop in the process. In this part, we improve the code from the previous article by using instance methods instead of static methods.
GC.KeepAlive may not work the way you intend when using it in async methods.
The C# specification indicates that function pointers can only be used on static methods. This article explains why.
Part 1 of the series about using NativeAOT to write a .NET profiler in C#, learning many things about native interop in the process. In this part, we will see how to mimic a COM interface in C#.
Using NativeAOT and ClrMD to write a native WinDbg extension in .NET.
How to find an instance of System.Threading.Thread by id in WinDbg, with a .NET Core memory dump.
This article explains how AsyncLocal values are stored in .NET and how to retrieve them from a memory dump.
Browse memory structures from a memory dump in C#, just like you would with ClrMD, but in a more fluent way.
How to tell PerfView to stop grouping unresolved functions under the same “?!?” label.