<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>minidump.net</title>
    <link>https://minidump.net/</link>
    <description>Recent content on minidump.net</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 17 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://minidump.net/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Writing a .NET Garbage Collector in C#  -  Part 9: Frozen segments and new allocation strategy</title>
      <link>https://minidump.net/writing-a-net-gc-in-c-part-9/</link>
      <pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-gc-in-c-part-9/</guid>
      <description>Using NativeAOT to write a .NET GC in C#. In this part, we look at what the GC must do to properly handle frozen segments, and we change the allocation strategy to make it more efficient.</description>
    </item>
    
    <item>
      <title>Writing a .NET Garbage Collector in C#  -  Part 8: Interior pointers</title>
      <link>https://minidump.net/writing-a-net-gc-in-c-part-8/</link>
      <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-gc-in-c-part-8/</guid>
      <description>Using NativeAOT to write a .NET GC in C#. This time, we look at what interior pointers are and why they&amp;rsquo;re so challenging for the GC. We also introduce the concept of brick table.</description>
    </item>
    
    <item>
      <title>Too good to be true: an unexpected profiler trap</title>
      <link>https://minidump.net/an-unexpected-profiler-trap/</link>
      <pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/an-unexpected-profiler-trap/</guid>
      <description>Sometimes the most convincing performance gains deserve a second look. A reminder that profiling data can be more subtle than it first appears.</description>
    </item>
    
    <item>
      <title>Writing a .NET Garbage Collector in C#  -  Part 7: Marking handles</title>
      <link>https://minidump.net/writing-a-net-gc-in-c-part-7/</link>
      <pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-gc-in-c-part-7/</guid>
      <description>Using NativeAOT to write a .NET GC in C#. In the seventh part, we scan and update the handles during the mark phase of the garbage collection.</description>
    </item>
    
    <item>
      <title>Writing a .NET Garbage Collector in C#  -  Part 6: Mark and Sweep</title>
      <link>https://minidump.net/writing-a-net-gc-in-c-part-6/</link>
      <pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-gc-in-c-part-6/</guid>
      <description>Using NativeAOT to write a .NET GC in C#. In the sixth part, we start implementing the mark phase of the garbage collection.</description>
    </item>
    
    <item>
      <title>Investigating a deadlock in Visual Studio</title>
      <link>https://minidump.net/investigating-a-deadlock-in-visual-studio/</link>
      <pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/investigating-a-deadlock-in-visual-studio/</guid>
      <description>A short investigation that showcases one of the most common problem faced when writing a profiler.</description>
    </item>
    
    <item>
      <title>Using profiler function hooks in .NET with Silhouette</title>
      <link>https://minidump.net/using-function-hooks-with-silhouette/</link>
      <pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/using-function-hooks-with-silhouette/</guid>
      <description>In this article, we see what are function hooks, and how to use them in .NET with Silhouette. We also learn how to statically link a library with NativeAOT.</description>
    </item>
    
    <item>
      <title>Measuring UI responsiveness in Resharper</title>
      <link>https://minidump.net/measuring-ui-responsiveness/</link>
      <pubDate>Thu, 18 Sep 2025 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/measuring-ui-responsiveness/</guid>
      <description>A walkthrough of how I built a custom profiler to measure UI responsiveness, using .NET and Silhouette.</description>
    </item>
    
    <item>
      <title>Writing a .NET Garbage Collector in C#  -  Part 5</title>
      <link>https://minidump.net/writing-a-net-gc-in-c-part-5/</link>
      <pubDate>Tue, 11 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-gc-in-c-part-5/</guid>
      <description>Using NativeAOT to write a .NET GC in C#. In the fifth part, we learn how to decode the GCDesc to find the references of a managed object.</description>
    </item>
    
    <item>
      <title>Pro .NET Memory Management 2nd Edition</title>
      <link>https://minidump.net/pro-net-memory-management/</link>
      <pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/pro-net-memory-management/</guid>
      <description>Pro .NET Memory Management 2nd Edition is available! What should you expect from it? Should you buy it if you already own the 1st edition?</description>
    </item>
    
    <item>
      <title>Writing a .NET Garbage Collector in C#  -  Part 4</title>
      <link>https://minidump.net/writing-a-net-gc-in-c-part-4/</link>
      <pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-gc-in-c-part-4/</guid>
      <description>Using NativeAOT to write a .NET GC in C#. In the fourth part, we see how walk the heap and how to keep track of allocation contexts.</description>
    </item>
    
    <item>
      <title>Writing a .NET Garbage Collector in C#  -  Part 3</title>
      <link>https://minidump.net/writing-a-net-gc-in-c-part-3/</link>
      <pubDate>Tue, 11 Feb 2025 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-gc-in-c-part-3/</guid>
      <description>Using NativeAOT to write a .NET GC in C#. The third part adds some tooling to inspect the objects stored on the heap.</description>
    </item>
    
    <item>
      <title>Writing a .NET Garbage Collector in C#  -  Part 2</title>
      <link>https://minidump.net/writing-a-net-gc-in-c-part-2/</link>
      <pubDate>Tue, 04 Feb 2025 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-gc-in-c-part-2/</guid>
      <description>Using NativeAOT to write a .NET GC in C#. The second part builds the simplest possible GC that can run basic .NET applications.</description>
    </item>
    
    <item>
      <title>Writing a .NET Garbage Collector in C#  -  Part 1</title>
      <link>https://minidump.net/2025-28-01-writing-a-net-gc-in-c-part-1/</link>
      <pubDate>Tue, 28 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/2025-28-01-writing-a-net-gc-in-c-part-1/</guid>
      <description>First part of a series of articles about writing a .NET Garbage Collector in C# using NativeAOT. This part sets the expectations and setups the project, dealing with the first difficulties.</description>
    </item>
    
    <item>
      <title>Writing a .NET profiler in C#  -  Part 5</title>
      <link>https://minidump.net/writing-a-net-profiler-in-c-part-5/</link>
      <pubDate>Tue, 07 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-profiler-in-c-part-5/</guid>
      <description>Part 5 of the series about using NativeAOT to write a .NET profiler in C#. We have all the foundations, we&amp;rsquo;re finally writing an actual profiler.</description>
    </item>
    
    <item>
      <title>Using Windows Error Reporting in .NET</title>
      <link>https://minidump.net/windows-error-reporting/</link>
      <pubDate>Tue, 03 Sep 2024 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/windows-error-reporting/</guid>
      <description>A look into how to use Windows Error Reporting to collect crash information for your .NET apps.</description>
    </item>
    
    <item>
      <title>Crash in the crash-analyzer</title>
      <link>https://minidump.net/crash-in-the-crashanalyzer/</link>
      <pubDate>Tue, 09 Apr 2024 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/crash-in-the-crashanalyzer/</guid>
      <description>When the tool you write to debug crashes crashes. A story of advanced printf-debugging.</description>
    </item>
    
    <item>
      <title>GummyCat - Visualize the activity of the .NET garbage collector</title>
      <link>https://minidump.net/gummycat/</link>
      <pubDate>Tue, 27 Feb 2024 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/gummycat/</guid>
      <description>A new tool to visualize the activity of the .NET garbage collector.</description>
    </item>
    
    <item>
      <title>Dumping the managed heap in C#</title>
      <link>https://minidump.net/dumping-the-managed-heap-in-csharp/</link>
      <pubDate>Tue, 13 Feb 2024 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/dumping-the-managed-heap-in-csharp/</guid>
      <description>Using unsafe hacks to walk the managed heap from within a .NET application, without relying on the debugging API.</description>
    </item>
    
    <item>
      <title>Exploring .NET frozen segments</title>
      <link>https://minidump.net/exploring-frozen-segments/</link>
      <pubDate>Sun, 14 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/exploring-frozen-segments/</guid>
      <description>Exploring a little-known API allowing to allocate managed objects outside of the managed heap.</description>
    </item>
    
    <item>
      <title>Memory alignment of doubles in C#</title>
      <link>https://minidump.net/memory-alignment-of-doubles-in-c-1d13e3ce741/</link>
      <pubDate>Sat, 30 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/memory-alignment-of-doubles-in-c-1d13e3ce741/</guid>
      <description>A deep dive into the weird tricks used by the .NET allocator to align arrays of doubles.</description>
    </item>
    
    <item>
      <title>SuppressGCTransition</title>
      <link>https://minidump.net/suppressgctransition-b9a8a774edbd/</link>
      <pubDate>Sat, 12 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/suppressgctransition-b9a8a774edbd/</guid>
      <description>Deep-dive into the SuppressGCTransition attribute introduced in .NET 5.</description>
    </item>
    
    <item>
      <title>Writing a .NET profiler in C# — Part 4</title>
      <link>https://minidump.net/writing-a-net-profiler-in-c-part-4-c54df903b9ce/</link>
      <pubDate>Sat, 10 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-profiler-in-c-part-4-c54df903b9ce/</guid>
      <description>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 &lt;code&gt;ICorProfilerInfo&lt;/code&gt;.</description>
    </item>
    
    <item>
      <title>VerificationException in .NET Framework when using structs</title>
      <link>https://minidump.net/verificationexception-in-net-framework-when-using-structs-6269eb3df448/</link>
      <pubDate>Mon, 01 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/verificationexception-in-net-framework-when-using-structs-6269eb3df448/</guid>
      <description>A surprising error occuring when using C# 7.3 with partial trust.</description>
    </item>
    
    <item>
      <title>Writing a .NET profiler in C#   — Part 3</title>
      <link>https://minidump.net/writing-a-net-profiler-in-c-part-3-7d2c59fc017f/</link>
      <pubDate>Fri, 03 Mar 2023 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-profiler-in-c-part-3-7d2c59fc017f/</guid>
      <description>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 &lt;code&gt;ICorProfilerCallback&lt;/code&gt; interface.</description>
    </item>
    
    <item>
      <title>Reading .NET performance counters without the PerfCounter API</title>
      <link>https://minidump.net/reading-net-performance-counters-without-the-perfcounter-api-aca5eab08874/</link>
      <pubDate>Sun, 12 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/reading-net-performance-counters-without-the-perfcounter-api-aca5eab08874/</guid>
      <description>A faster and safer way to read .NET performance counters from within.</description>
    </item>
    
    <item>
      <title>Writing a .NET profiler in C#  —  Part 2</title>
      <link>https://minidump.net/writing-a-net-profiler-in-c-part-2-8039da001e43/</link>
      <pubDate>Wed, 11 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-profiler-in-c-part-2-8039da001e43/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Using GC.KeepAlive in async methods</title>
      <link>https://minidump.net/c-using-gc-keepalive-in-async-methods-8d20fd79f0a0/</link>
      <pubDate>Mon, 05 Sep 2022 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/c-using-gc-keepalive-in-async-methods-8d20fd79f0a0/</guid>
      <description>GC.KeepAlive may not work the way you intend when using it in async methods.</description>
    </item>
    
    <item>
      <title>Why function pointers can&#39;t be used on instance methods in C#</title>
      <link>https://minidump.net/c-why-function-pointers-cant-be-used-on-instance-methods-8a99fc99b040/</link>
      <pubDate>Tue, 26 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/c-why-function-pointers-cant-be-used-on-instance-methods-8a99fc99b040/</guid>
      <description>The C# specification indicates that function pointers can only be used on static methods. This article explains why.</description>
    </item>
    
    <item>
      <title>Writing a .NET profiler in C# - Part 1</title>
      <link>https://minidump.net/writing-a-net-profiler-in-c-part-1-d3978aae9b12/</link>
      <pubDate>Mon, 11 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-a-net-profiler-in-c-part-1-d3978aae9b12/</guid>
      <description>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#.</description>
    </item>
    
    <item>
      <title>Writing native WinDbg extensions in C#</title>
      <link>https://minidump.net/writing-native-windbg-extensions-in-c-5390726f3cec/</link>
      <pubDate>Tue, 08 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-native-windbg-extensions-in-c-5390726f3cec/</guid>
      <description>Using NativeAOT and ClrMD to write a native WinDbg extension in .NET.</description>
    </item>
    
    <item>
      <title>Finding an instance of thread by id in WinDbg</title>
      <link>https://minidump.net/finding-an-instance-of-thread-by-id-in-windbg-d9fd9a4f1bac/</link>
      <pubDate>Thu, 16 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/finding-an-instance-of-thread-by-id-in-windbg-d9fd9a4f1bac/</guid>
      <description>How to find an instance of System.Threading.Thread by id in WinDbg, with a .NET Core memory dump.</description>
    </item>
    
    <item>
      <title>Reading AsyncLocal values from a memory dump</title>
      <link>https://minidump.net/reading-asynclocal-values-from-a-memory-dump-8be356a46b29/</link>
      <pubDate>Thu, 16 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/reading-asynclocal-values-from-a-memory-dump-8be356a46b29/</guid>
      <description>This article explains how AsyncLocal values are stored in .NET and how to retrieve them from a memory dump.</description>
    </item>
    
    <item>
      <title>Analyze your memory dumps in C# with DynaMD</title>
      <link>https://minidump.net/analyze-your-memory-dumps-in-c-with-dynamd-8e4b110b9d3a/</link>
      <pubDate>Fri, 16 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/analyze-your-memory-dumps-in-c-with-dynamd-8e4b110b9d3a/</guid>
      <description>Browse memory structures from a memory dump in C#, just like you would with ClrMD, but in a more fluent way.</description>
    </item>
    
    <item>
      <title>Showing unresolved functions in PerfView</title>
      <link>https://minidump.net/showing-unresolved-functions-in-perfview-ab6cd899cb94/</link>
      <pubDate>Wed, 02 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/showing-unresolved-functions-in-perfview-ab6cd899cb94/</guid>
      <description>How to tell PerfView to stop grouping unresolved functions under the same &amp;ldquo;?!?&amp;rdquo; label.</description>
    </item>
    
    <item>
      <title>An unconventional way of investigating a NullReferenceException</title>
      <link>https://minidump.net/an-unconventional-way-of-investigating-a-nullreferenceexception-5628cca01d6a/</link>
      <pubDate>Tue, 16 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/an-unconventional-way-of-investigating-a-nullreferenceexception-5628cca01d6a/</guid>
      <description>Digging into a bug in the .NET ARM64 runtime, learning about dispatch stubs, and using that knowledge to diagnose a NullReferenceException.</description>
    </item>
    
    <item>
      <title>Debugging a native deadlock in a .NET Linux application</title>
      <link>https://minidump.net/investigating-a-native-deadlock-in-a-net-linux-application-97979a005ebd/</link>
      <pubDate>Tue, 09 Feb 2021 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/investigating-a-native-deadlock-in-a-net-linux-application-97979a005ebd/</guid>
      <description>This story begins when one of our integrations tests started got stuck on one PR that seemingly impacted unrelated code. This is a nice excuse to cover some concepts I haven&amp;rsquo;t touched in my previous articles, such as downloading the .NET symbols on Linux.</description>
    </item>
    
    <item>
      <title>AccessViolation in ObjectNative::IsLockHeld (part 2 of 2)</title>
      <link>https://minidump.net/accessviolation-in-objectnative-islockheld-part-2-of-2-a703e484113c/</link>
      <pubDate>Wed, 25 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/accessviolation-in-objectnative-islockheld-part-2-of-2-a703e484113c/</guid>
      <description>This is the second part of an investigation where I tried to understand why an application was randomly crashing with an &lt;code&gt;AccessViolationException&lt;/code&gt;. This part starts when, as I ran out of easy things to try, I decided to map the assembly code of the &lt;code&gt;IsLockHeld&lt;/code&gt; method to the original C++ code to understand exactly where it crashed.</description>
    </item>
    
    <item>
      <title>AccessViolation in ObjectNative::IsLockHeld (part 1 of 2)</title>
      <link>https://minidump.net/accessviolation-in-objectnative-islockheld-part-1-of-2-7fae4b839f9a/</link>
      <pubDate>Thu, 05 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/accessviolation-in-objectnative-islockheld-part-1-of-2-7fae4b839f9a/</guid>
      <description>Investigating a crash in a .NET application, caused by an AccessViolationException when inspecting the state of a lock.</description>
    </item>
    
    <item>
      <title>Investigating an InvalidProgramException from a memory dump (part 3 of 3)</title>
      <link>https://minidump.net/investigating-an-invalidprogramexception-from-a-memory-dump-part-3-of-3-c1d912075cb1/</link>
      <pubDate>Thu, 10 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/investigating-an-invalidprogramexception-from-a-memory-dump-part-3-of-3-c1d912075cb1/</guid>
      <description>In this series of article, we&amp;rsquo;re retracing how I debugged an &lt;code&gt;InvalidProgramException&lt;/code&gt;, caused by a bug in the Datadog profiler, from a memory dump sent by a customer. This is the last part of the investigation, about figuring out what is wrong with the IL code.</description>
    </item>
    
    <item>
      <title>Investigating an InvalidProgramException from a memory dump (part 2 of 3)</title>
      <link>https://minidump.net/investigating-an-invalidprogramexception-from-a-memory-dump-part-2-of-3-daaecd8f3cf4/</link>
      <pubDate>Tue, 01 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/investigating-an-invalidprogramexception-from-a-memory-dump-part-2-of-3-daaecd8f3cf4/</guid>
      <description>In this series of article, we&amp;rsquo;re retracing how I debugged an InvalidProgramException, caused by a bug in the Datadog profiler, from a memory dump sent by a customer. In this part, we extract the dynamic IL from the memory dump.</description>
    </item>
    
    <item>
      <title>Investigating an InvalidProgramException from a memory dump (part 1 of 3)</title>
      <link>https://minidump.net/investigating-an-invalidprogramexception-from-a-memory-dump-part-1-of-3-bce634460cc3/</link>
      <pubDate>Wed, 26 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/investigating-an-invalidprogramexception-from-a-memory-dump-part-1-of-3-bce634460cc3/</guid>
      <description>In this series of article, we&amp;rsquo;re retracing how I debugged an InvalidProgramException, caused by a bug in the Datadog profiler, from a memory dump sent by a customer. The first part of the investigation is an introduction to using a memory dump from a .NET application to find the information you seek.</description>
    </item>
    
    <item>
      <title>Tricked by WebRequest</title>
      <link>https://minidump.net/c-tricked-by-webrequest-209014d99653/</link>
      <pubDate>Fri, 14 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/c-tricked-by-webrequest-209014d99653/</guid>
      <description>Even with years of experience, WebRequest managed to surprise me.</description>
    </item>
    
    <item>
      <title>Monitor GC stats with a startup hook</title>
      <link>https://minidump.net/monitor-gc-stats-with-a-startup-hook-55aa03dedea3/</link>
      <pubDate>Sun, 21 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/monitor-gc-stats-with-a-startup-hook-55aa03dedea3/</guid>
      <description>Using startup hooks to automatically fetch GC metrics from any .net core application.</description>
    </item>
    
    <item>
      <title>Check what .net core GC keywords are enabled without a debugger</title>
      <link>https://minidump.net/check-what-net-core-gc-keywords-are-enabled-without-a-debugger-d616745c0d0e/</link>
      <pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/check-what-net-core-gc-keywords-are-enabled-without-a-debugger-d616745c0d0e/</guid>
      <description>How to inspect arbitrary values in the memory of a .net process on Linux&amp;hellip; And find an unexpected bug in the process.</description>
    </item>
    
    <item>
      <title>Performance best practices in C#</title>
      <link>https://minidump.net/performance-best-practices-in-c-b85a47bdd93a/</link>
      <pubDate>Tue, 12 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/performance-best-practices-in-c-b85a47bdd93a/</guid>
      <description>Non-exhaustive list of code patterns to avoid in C#, either because they are risky or perform poorly.</description>
    </item>
    
    <item>
      <title>.NET ThreadPool starvation, and how queuing makes it worse</title>
      <link>https://minidump.net/net-threadpool-starvation-and-how-queuing-makes-it-worse-512c8d570527/</link>
      <pubDate>Mon, 27 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/net-threadpool-starvation-and-how-queuing-makes-it-worse-512c8d570527/</guid>
      <description>Explaining the ThreadPool starvation issue, and how it can be made worse by the way work-items are queued.</description>
    </item>
    
    <item>
      <title>Turning your training bike into a Speed remake</title>
      <link>https://minidump.net/turning-your-training-bike-into-a-speed-remake-bceb4ea3d114/</link>
      <pubDate>Tue, 14 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/turning-your-training-bike-into-a-speed-remake-bceb4ea3d114/</guid>
      <description>Inspiration for quarantine days: how to connect a Raspberry Pi to a training bike to stream the speed to a computer and pause a video when below 20 km/h</description>
    </item>
    
    <item>
      <title>Switching back to the UI thread in WPF/UWP, in modern C#</title>
      <link>https://minidump.net/switching-back-to-the-ui-thread-in-wpf-uwp-in-modern-c-5dc1cc8efa5e/</link>
      <pubDate>Fri, 28 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/switching-back-to-the-ui-thread-in-wpf-uwp-in-modern-c-5dc1cc8efa5e/</guid>
      <description>Leveraging the async machinery to transparently switch to the UI thread when needed.</description>
    </item>
    
    <item>
      <title>Another way to use your debugging tools</title>
      <link>https://minidump.net/another-way-to-use-your-debugging-tools-7e7f498d7a2b/</link>
      <pubDate>Fri, 21 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/another-way-to-use-your-debugging-tools-7e7f498d7a2b/</guid>
      <description>Using debugging tools to get rid of a nagging popup.</description>
    </item>
    
    <item>
      <title>Dumping stack objects with ClrMD</title>
      <link>https://minidump.net/dumping-stack-objects-with-clrmd-c002dab4651b/</link>
      <pubDate>Wed, 18 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/dumping-stack-objects-with-clrmd-c002dab4651b/</guid>
      <description>How to implement the WinDbg DumpStackObjects command in ClrMD.</description>
    </item>
    
    <item>
      <title>Debugging and fixing the Twitch desktop client</title>
      <link>https://minidump.net/debugging-and-fixing-the-twitch-desktop-client-d1b38a349186/</link>
      <pubDate>Sat, 11 May 2019 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/debugging-and-fixing-the-twitch-desktop-client-d1b38a349186/</guid>
      <description>Showing the mindset and methodology involved in the debugging of an application you know almost nothing about.</description>
    </item>
    
    <item>
      <title>Writing ClrMD extensions for WinDbg and LLDB</title>
      <link>https://minidump.net/writing-clrmd-extensions-for-windbg-and-lldb-916427956f66/</link>
      <pubDate>Thu, 14 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/writing-clrmd-extensions-for-windbg-and-lldb-916427956f66/</guid>
      <description>Guide on how to write debugger extensions that are compatible with both WinDbg and LLDB.</description>
    </item>
    
    <item>
      <title>Have some fun with .net core startup hooks</title>
      <link>https://minidump.net/c-have-some-fun-with-net-core-startup-hooks-498b9ad001e1/</link>
      <pubDate>Fri, 01 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/c-have-some-fun-with-net-core-startup-hooks-498b9ad001e1/</guid>
      <description>How to abuse .net core startup hooks to make apps behave in crazy ways.</description>
    </item>
    
    <item>
      <title>Implementing Java ReferenceQueue and PhantomReference in C#</title>
      <link>https://minidump.net/implementing-java-referencequeue-and-phantomreference-in-c-827d7141b6e4/</link>
      <pubDate>Wed, 09 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/implementing-java-referencequeue-and-phantomreference-in-c-827d7141b6e4/</guid>
      <description>The Java ReferenceQueue is a mechanism that lets you know when an object has been GC&amp;rsquo;d. How hard can it be to reimplement it in .NET?</description>
    </item>
    
    <item>
      <title>Optimizing the WinDbg DML parser</title>
      <link>https://minidump.net/optimizing-the-windbg-dml-parser-9f64419f9/</link>
      <pubDate>Thu, 03 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://minidump.net/optimizing-the-windbg-dml-parser-9f64419f9/</guid>
      <description>The impact of using the wrong class for the job. Profiling and fixing a performance issue in WinDbg.</description>
    </item>
    
  </channel>
</rss>
