Skip to content

Additional work in dumpasync command #11243

@stephentoub

Description

@stephentoub

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:

  1. Remove the dependency on interpreting the C# state machine's _state field. We can use the Task's IsCompleted for the same purpose.
  2. 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.
  3. 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.
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-Diagnostics-coreclrin-prThere is an active PR which will close this issue when it is merged

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions