Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Add GCDescs in front of MethodTable to dumps
  • Loading branch information
Mike McLaughlin committed Jul 22, 2022
commit a7aefe4e2a15a7910202af06438d51e8acd09e26
10 changes: 10 additions & 0 deletions src/coreclr/vm/methodtable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7835,6 +7835,16 @@ MethodTable::EnumMemoryRegions(CLRDataEnumMemoryFlags flags)
DWORD size = GetEndOffsetOfOptionalMembers();
DacEnumMemoryRegion(dac_cast<TADDR>(this), size);

// Make sure the GCDescs are added to the dump
if (ContainsPointers())
{
PTR_CGCDesc gcdesc = CGCDesc::GetCGCDescFromMT(this);
size_t size = gcdesc->GetSize();
// Manually calculate the start of the GCDescs because CGCDesc::GetStartOfGCData() isn't DAC'ified.
TADDR gcdescStart = dac_cast<TADDR>(this) - size;
DacEnumMemoryRegion(gcdescStart, size);
}

if (!IsCanonicalMethodTable())
{
PTR_MethodTable pMTCanonical = GetCanonicalMethodTable();
Expand Down