dotnet (40)
- Optimizing the WinDbg DML parser - January 03 2019
- Implementing Java ReferenceQueue and PhantomReference in C# - January 09 2019
- Have some fun with .net core startup hooks - February 01 2019
- Writing ClrMD extensions for WinDbg and LLDB - March 14 2019
- Debugging and fixing the Twitch desktop client - May 11 2019
- Dumping stack objects with ClrMD - December 18 2019
- Another way to use your debugging tools - February 21 2020
- Switching back to the UI thread in WPF/UWP, in modern C# - February 28 2020
- Turning your training bike into a Speed remake - April 14 2020
- .NET ThreadPool starvation, and how queuing makes it worse - April 27 2020
- Performance best practices in C# - May 12 2020
- Check what .net core GC keywords are enabled without a debugger - May 18 2020
- Monitor GC stats with a startup hook - June 21 2020
- Tricked by WebRequest - August 14 2020
- Investigating an InvalidProgramException from a memory dump (part 1 of 3) - August 26 2020
- Investigating an InvalidProgramException from a memory dump (part 2 of 3) - September 01 2020
- Investigating an InvalidProgramException from a memory dump (part 3 of 3) - September 10 2020
- AccessViolation in ObjectNative::IsLockHeld (part 1 of 2) - November 05 2020
- AccessViolation in ObjectNative::IsLockHeld (part 2 of 2) - November 25 2020
- Debugging a native deadlock in a .NET Linux application - February 09 2021
- An unconventional way of investigating a NullReferenceException - March 16 2021
- Showing unresolved functions in PerfView - June 02 2021
- Analyze your memory dumps in C# with DynaMD - July 16 2021
- Finding an instance of thread by id in WinDbg - September 16 2021
- Reading AsyncLocal values from a memory dump - September 16 2021
- Writing native WinDbg extensions in C# - February 08 2022
- Writing a .NET profiler in C# - Part 1 - July 11 2022
- Why function pointers can't be used on instance methods in C# - July 26 2022
- Using GC.KeepAlive in async methods - September 05 2022
- Writing a .NET profiler in C# — Part 2 - January 11 2023
- Reading .NET performance counters without the PerfCounter API - February 12 2023
- Writing a .NET profiler in C# — Part 3 - March 03 2023
- VerificationException in .NET Framework when using structs - May 01 2023
- Writing a .NET profiler in C# — Part 4 - June 10 2023
- SuppressGCTransition - August 12 2023
- Memory alignment of doubles in C# - September 30 2023
- Exploring .NET frozen segments - January 14 2024
- Dumping the managed heap in C# - February 13 2024
- GummyCat - Visualize the activity of the .NET garbage collector - February 27 2024
- Using Windows Error Reporting in .NET - September 03 2024
debugging (17)
- Writing ClrMD extensions for WinDbg and LLDB - March 14 2019
- Debugging and fixing the Twitch desktop client - May 11 2019
- Dumping stack objects with ClrMD - December 18 2019
- Another way to use your debugging tools - February 21 2020
- Check what .net core GC keywords are enabled without a debugger - May 18 2020
- Investigating an InvalidProgramException from a memory dump (part 1 of 3) - August 26 2020
- Investigating an InvalidProgramException from a memory dump (part 2 of 3) - September 01 2020
- Investigating an InvalidProgramException from a memory dump (part 3 of 3) - September 10 2020
- AccessViolation in ObjectNative::IsLockHeld (part 1 of 2) - November 05 2020
- AccessViolation in ObjectNative::IsLockHeld (part 2 of 2) - November 25 2020
- Debugging a native deadlock in a .NET Linux application - February 09 2021
- An unconventional way of investigating a NullReferenceException - March 16 2021
- Analyze your memory dumps in C# with DynaMD - July 16 2021
- Finding an instance of thread by id in WinDbg - September 16 2021
- Reading AsyncLocal values from a memory dump - September 16 2021
- Writing native WinDbg extensions in C# - February 08 2022
- Crash in the crash-analyzer - April 09 2024
windbg (12)
- Optimizing the WinDbg DML parser - January 03 2019
- Writing ClrMD extensions for WinDbg and LLDB - March 14 2019
- Investigating an InvalidProgramException from a memory dump (part 1 of 3) - August 26 2020
- Investigating an InvalidProgramException from a memory dump (part 2 of 3) - September 01 2020
- Investigating an InvalidProgramException from a memory dump (part 3 of 3) - September 10 2020
- AccessViolation in ObjectNative::IsLockHeld (part 1 of 2) - November 05 2020
- AccessViolation in ObjectNative::IsLockHeld (part 2 of 2) - November 25 2020
- Debugging a native deadlock in a .NET Linux application - February 09 2021
- An unconventional way of investigating a NullReferenceException - March 16 2021
- Finding an instance of thread by id in WinDbg - September 16 2021
- Reading AsyncLocal values from a memory dump - September 16 2021
- Writing native WinDbg extensions in C# - February 08 2022
garbage-collection (8)
- Implementing Java ReferenceQueue and PhantomReference in C# - January 09 2019
- Check what .net core GC keywords are enabled without a debugger - May 18 2020
- Monitor GC stats with a startup hook - June 21 2020
- SuppressGCTransition - August 12 2023
- Memory alignment of doubles in C# - September 30 2023
- Exploring .NET frozen segments - January 14 2024
- Dumping the managed heap in C# - February 13 2024
- GummyCat - Visualize the activity of the .NET garbage collector - February 27 2024
performance (7)
- Optimizing the WinDbg DML parser - January 03 2019
- .NET ThreadPool starvation, and how queuing makes it worse - April 27 2020
- Performance best practices in C# - May 12 2020
- Showing unresolved functions in PerfView - June 02 2021
- Reading .NET performance counters without the PerfCounter API - February 12 2023
- SuppressGCTransition - August 12 2023
- Memory alignment of doubles in C# - September 30 2023
cpp (6)
- Investigating an InvalidProgramException from a memory dump (part 2 of 3) - September 01 2020
- AccessViolation in ObjectNative::IsLockHeld (part 1 of 2) - November 05 2020
- AccessViolation in ObjectNative::IsLockHeld (part 2 of 2) - November 25 2020
- An unconventional way of investigating a NullReferenceException - March 16 2021
- VerificationException in .NET Framework when using structs - May 01 2023
- Memory alignment of doubles in C# - September 30 2023
nativeaot (6)
- Writing native WinDbg extensions in C# - February 08 2022
- Writing a .NET profiler in C# - Part 1 - July 11 2022
- Writing a .NET profiler in C# — Part 2 - January 11 2023
- Writing a .NET profiler in C# — Part 3 - March 03 2023
- Writing a .NET profiler in C# — Part 4 - June 10 2023
- Using Windows Error Reporting in .NET - September 03 2024
assembly (5)
- Investigating an InvalidProgramException from a memory dump (part 2 of 3) - September 01 2020
- AccessViolation in ObjectNative::IsLockHeld (part 1 of 2) - November 05 2020
- AccessViolation in ObjectNative::IsLockHeld (part 2 of 2) - November 25 2020
- An unconventional way of investigating a NullReferenceException - March 16 2021
- SuppressGCTransition - August 12 2023
clrmd (5)
- Writing ClrMD extensions for WinDbg and LLDB - March 14 2019
- Dumping stack objects with ClrMD - December 18 2019
- Analyze your memory dumps in C# with DynaMD - July 16 2021
- Reading AsyncLocal values from a memory dump - September 16 2021
- Writing native WinDbg extensions in C# - February 08 2022
csharp (5)
- AccessViolation in ObjectNative::IsLockHeld (part 2 of 2) - November 25 2020
- Writing a .NET profiler in C# - Part 1 - July 11 2022
- Writing a .NET profiler in C# — Part 2 - January 11 2023
- Writing a .NET profiler in C# — Part 3 - March 03 2023
- Writing a .NET profiler in C# — Part 4 - June 10 2023
lldb (5)
- Writing ClrMD extensions for WinDbg and LLDB - March 14 2019
- Investigating an InvalidProgramException from a memory dump (part 2 of 3) - September 01 2020
- Investigating an InvalidProgramException from a memory dump (part 3 of 3) - September 10 2020
- Debugging a native deadlock in a .NET Linux application - February 09 2021
- An unconventional way of investigating a NullReferenceException - March 16 2021
async (4)
- Switching back to the UI thread in WPF/UWP, in modern C# - February 28 2020
- .NET ThreadPool starvation, and how queuing makes it worse - April 27 2020
- Reading AsyncLocal values from a memory dump - September 16 2021
- Using GC.KeepAlive in async methods - September 05 2022
profiler (4)
- Writing a .NET profiler in C# - Part 1 - July 11 2022
- Writing a .NET profiler in C# — Part 2 - January 11 2023
- Writing a .NET profiler in C# — Part 3 - March 03 2023
- Writing a .NET profiler in C# — Part 4 - June 10 2023
fun (2)
- Have some fun with .net core startup hooks - February 01 2019
- Another way to use your debugging tools - February 21 2020
source-generator (2)
- Writing a .NET profiler in C# — Part 3 - March 03 2023
- Writing a .NET profiler in C# — Part 4 - June 10 2023
startup-hooks (2)
- Have some fun with .net core startup hooks - February 01 2019
- Monitor GC stats with a startup hook - June 21 2020
dynamd (1)
- Analyze your memory dumps in C# with DynaMD - July 16 2021
iot (1)
- Turning your training bike into a Speed remake - April 14 2020
java (1)
- Implementing Java ReferenceQueue and PhantomReference in C# - January 09 2019
linux (1)
- Crash in the crash-analyzer - April 09 2024
perfview (1)
- Showing unresolved functions in PerfView - June 02 2021
raspberry-pi (1)
- Turning your training bike into a Speed remake - April 14 2020
superluminal (1)
- Reading .NET performance counters without the PerfCounter API - February 12 2023
twitch (1)
- Debugging and fixing the Twitch desktop client - May 11 2019
uwp (1)
- Switching back to the UI thread in WPF/UWP, in modern C# - February 28 2020
wpf (1)
- Switching back to the UI thread in WPF/UWP, in modern C# - February 28 2020