Understanding Windows and .NET Through Debugging

Understanding Windows and .NET Through Debugging

Speaker: Adam Furmanek



Debugging is hard to do and hard to learn. Each bug is different, and there is no single path to learn how to tackle memory leaks or concurrency issues. It also requires an understanding of multiple software layers, starting with C#, through intermediate language, down to the operating system, and the machine code level. In this workshop, we’ll see .NET under the hood. We will use debuggers to understand type safety, memory management, or concurrency primitives. We will learn how to debug the platform when something goes wrong.



  • Understanding of Windows and x86 CPU architecture, how they work together and how they are used by .NET platform.
  • Understanding of various .NET mechanisms, memory structures, exception handling, asynchronous programming.
  • Common debugging scenarios with WinDBG, including memory management, concurrency, garbage collection.
  • Tools helpful for post-mortem debugging and investigation.


Topics covered:

  1. Memory management in .NET — object structure, reference types and value types, Garbage Collection.
  2. Concurrency, locking, synchronization.
  3. Debugging tools, WinDBG.
  4. Post-mortem debugging.
  5. Various .NET internals, intermediate language, exception handling.
  6. Various Windows and x86 architecture internals, calling convention, exception mechanisms, user and kernel space, memory partitions.


Intended audience:

.NET developers looking to understand internals of x86, Windows, and .NET, to better debug the platform and diagnose applications.


Required equipment:

Windows laptop.


Required software:

Windows 10 running on x86 architecture. Visual Studio 2019. WinDBG.


Workshop type:

Lecture + hands-on.



By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.