Skip to content

Additional work in dumpasync command #163

@mikem8361

Description

@mikem8361

@stephentoub commented on Tue Oct 16 2018

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


@mikem8361 commented on Tue Oct 16 2018

Maybe this could be done in the diagnostics repo.


@stephentoub commented on Tue Oct 16 2018

Is that the official home now for the SOS source? Is the code in coreclr being deleted then? Or mirrored? Or some such thing?


@mikem8361 commented on Tue Oct 16 2018

Eventually it will be the official home for SOS and it will be deleted from coreclr, but I still have a few hoops and other things to go through to ship this SOS “out of band”. That is why I said “maybe”. I don’t have a definite time frame for the switch over. Probably not 2.2. On the positive side, it is easier to develop and testing is more through in the diagnostic repo.


@tommcdon commented on Wed Apr 17 2019

@mikem8361 can we move this issue to the diagnostics repo?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions