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.
Part 3 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 write a source generator to automatically generate the boilerplate code needed to implement the
ICorProfilerCallback
interface.