Part 5 of the series about using NativeAOT to write a .NET profiler in C#. We have all the foundations, we’re finally writing an actual profiler.
A look into how to use Windows Error Reporting to collect crash information for your .NET apps.
When the tool you write to debug crashes crashes. A story of advanced printf-debugging.
A new tool to visualize the activity of the .NET garbage collector.
Using unsafe hacks to walk the managed heap from within a .NET application, without relying on the debugging API.
Exploring a little-known API allowing to allocate managed objects outside of the managed heap.
A deep dive into the weird tricks used by the .NET allocator to align arrays of doubles.
Deep-dive into the SuppressGCTransition attribute introduced in .NET 5.
Part 4 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 learn how to call methods from
ICorProfilerInfo
.
A surprising error occuring when using C# 7.3 with partial trust.