Add support for collectible types to SOS (dotnet/coreclr#19842)
authorJan Vorlicek <janvorli@microsoft.com>
Thu, 6 Sep 2018 08:15:21 +0000 (10:15 +0200)
committerGitHub <noreply@github.com>
Thu, 6 Sep 2018 08:15:21 +0000 (10:15 +0200)
commitdd00595ee1a2efa0be61f21e41cdc4c3c08def3a
tree8ea4b1e32750a5d5213b7660e6df5ecbf6ac721f
parent7ebb6eab8aab1ff71689f7398fd98f58306a8059
Add support for collectible types to SOS (dotnet/coreclr#19842)

* Add support for collectible types to SOS

Collectible types indirectly reference managed LoaderAllocator via
pointer to native AssemblyLoaderAllocator stored in their MethodTable.
GC uses this relation when scanning object graph to determine which
objects are rooted and which ones are not.
The gcroot command in SOS doesn't understand this relation and so it
is unable to find all roots for LoaderAllocator.
This change fixes it.

* PR feedback

Make the failure to get the collectible info non-fatal to make it
compatible with older runtimes.

Commit migrated from https://github.com/dotnet/coreclr/commit/2a236b31a65614f5318cad794a5f38f4e566674e
12 files changed:
src/coreclr/src/ToolBox/SOS/Strike/eeheap.cpp
src/coreclr/src/ToolBox/SOS/Strike/gcroot.cpp
src/coreclr/src/ToolBox/SOS/Strike/sos.cpp
src/coreclr/src/ToolBox/SOS/Strike/sos.h
src/coreclr/src/ToolBox/SOS/Strike/util.h
src/coreclr/src/debug/daccess/daccess.cpp
src/coreclr/src/debug/daccess/dacimpl.h
src/coreclr/src/debug/daccess/request.cpp
src/coreclr/src/inc/dacprivate.h
src/coreclr/src/inc/sospriv.idl
src/coreclr/src/pal/prebuilt/idl/sospriv_i.cpp
src/coreclr/src/pal/prebuilt/inc/sospriv.h