diff --git a/Directory.Packages.props b/Directory.Packages.props
index 4749e3b87..a3bfa007d 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -7,7 +7,7 @@
3.11.0
4.4.0
1.1.1
- 2.4.416101
+ 3.1.456501
diff --git a/src/SosThreadingTools/DumpAsyncCommand.cs b/src/SosThreadingTools/DumpAsyncCommand.cs
index e4c2531e8..9aedaf999 100644
--- a/src/SosThreadingTools/DumpAsyncCommand.cs
+++ b/src/SosThreadingTools/DumpAsyncCommand.cs
@@ -362,7 +362,7 @@ private void MarkThreadingBlockTasks(List allStateMachines)
if (stackFrame is object)
{
var visitedObjects = new HashSet();
- foreach (IClrStackRoot stackRoot in thread.EnumerateStackRoots())
+ foreach (ClrStackRoot stackRoot in thread.EnumerateStackRoots())
{
ClrObject stackObject = stackRoot.Object;
if (string.Equals(stackObject.Type?.Name, "Microsoft.VisualStudio.Threading.JoinableTask", StringComparison.Ordinal) ||
@@ -370,7 +370,7 @@ private void MarkThreadingBlockTasks(List allStateMachines)
{
if (visitedObjects.Add(stackObject.Address))
{
- var joinableTaskObject = new ClrObject(stackObject.Address, stackObject.Type);
+ ClrObject joinableTaskObject = stackObject.Type is null ? runtime.Heap.GetObject(stackObject.Address) : runtime.Heap.GetObject(stackObject.Address, stackObject.Type);
int state = joinableTaskObject.ReadField("state");
if ((state & 0x10) == 0x10)
{