In dotnet/coreclr#18160 and dotnet/coreclr#18213 for 3.0 we added a basic dumpasync command to SOS. Before we actually ship it, we should try to augment it in a few ways:
- Remove the dependency on interpreting the C# state machine's _state field. We can use the Task's IsCompleted for the same purpose.
- Add support for following continuation chains. Right now we use gcroots for this purpose, which can actually be more comprehensive, but also adds a lot of runtime expense.
- Support optionally finding all Tasks, not just async state machine objects; that's fairly easily done with dumpheap today, but the gcroot automation, completion detection, and continuation-chain following from (2) all make it much more useful in dumpasync than it is in dumpheap.
- List all thread stacks waiting on tasks, and dump the associated information for that task (state machine if it's an async method, gcroot / continuation chain, etc.)
cc: @noahfalk
In dotnet/coreclr#18160 and dotnet/coreclr#18213 for 3.0 we added a basic
dumpasynccommand to SOS. Before we actually ship it, we should try to augment it in a few ways:cc: @noahfalk