Why is async hard to debug?

Series of videos explaining about async debugging in C#.

This was a talk recorded with Channel 9, from Visual Studio. We divided the talk in three parts so we could go in-depth more easily with the other topics.

The source code for this talk is available here.

Part 1

In this first part, I explain what happens under the covers of an “async” and “await” in C#. We start from scratch with a synchronous application and make it asynchronous.

Part 2

In the second part, we explain the nitty details of the runtime information available for async methods with a state machine. This covers how the debugger is able to fetch the debug information necessary to build the “async call stacks”.

Part 3

On the third part, I get a real application and debug an issue with the “async call stacks”. I go over Visual Studio features (which I worked on!) and explain how to debug it in practice.

Series explaining how async works and how to debug in Visual Studio.

By Isadora, 2021-06-10