diff options
author | Gleb Balykov <g.balykov@samsung.com> | 2017-06-23 15:48:48 +0300 |
---|---|---|
committer | Gleb Balykov <g.balykov@samsung.com> | 2017-07-10 16:37:05 +0300 |
commit | c4c04ea45cda3194cdf2189d757b96602ea344ee (patch) | |
tree | e04539919b2ce293ec81397ab5715ea8455d69b9 /src/debug/daccess/nidump.cpp | |
parent | cf1fb9e17fc8b6ee849edab5a696d0ec5c6eadd2 (diff) | |
download | coreclr-c4c04ea45cda3194cdf2189d757b96602ea344ee.tar.gz coreclr-c4c04ea45cda3194cdf2189d757b96602ea344ee.tar.bz2 coreclr-c4c04ea45cda3194cdf2189d757b96602ea344ee.zip |
Remove relocations for MethodTable's vtable-1st-level-indirection
Diffstat (limited to 'src/debug/daccess/nidump.cpp')
-rw-r--r-- | src/debug/daccess/nidump.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/debug/daccess/nidump.cpp b/src/debug/daccess/nidump.cpp index 0d948ddf6c..64c86e305e 100644 --- a/src/debug/daccess/nidump.cpp +++ b/src/debug/daccess/nidump.cpp @@ -7188,9 +7188,9 @@ NativeImageDumper::DumpMethodTable( PTR_MethodTable mt, const char * name, { m_display->StartStructureWithOffset("Vtable", mt->GetVtableOffset(), - mt->GetNumVtableIndirections() * sizeof(PTR_PCODE), + mt->GetNumVtableIndirections() * sizeof(MethodTable::VTableIndir_t), DataPtrToDisplay(PTR_TO_TADDR(mt) + mt->GetVtableOffset()), - mt->GetNumVtableIndirections() * sizeof(PTR_PCODE)); + mt->GetNumVtableIndirections() * sizeof(MethodTable::VTableIndir_t)); MethodTable::VtableIndirectionSlotIterator itIndirect = mt->IterateVtableIndirectionSlots(); @@ -7209,7 +7209,8 @@ NativeImageDumper::DumpMethodTable( PTR_MethodTable mt, const char * name, { DisplayStartElement( "Slot", ALWAYS ); DisplayWriteElementInt( "Index", i, ALWAYS ); - PTR_PCODE tgt = mt->GetVtableIndirections()[i]; + TADDR base = dac_cast<TADDR>(&(mt->GetVtableIndirections()[i])); + PTR_PCODE tgt = MethodTable::VTableIndir_t::GetValueMaybeNullAtPtr(base); DisplayWriteElementPointer( "Pointer", DataPtrToDisplay(dac_cast<TADDR>(tgt)), ALWAYS ); @@ -7245,7 +7246,7 @@ NativeImageDumper::DumpMethodTable( PTR_MethodTable mt, const char * name, else { CoverageRead( PTR_TO_TADDR(mt) + mt->GetVtableOffset(), - mt->GetNumVtableIndirections() * sizeof(PTR_PCODE) ); + mt->GetNumVtableIndirections() * sizeof(MethodTable::VTableIndir_t) ); if (mt->HasNonVirtualSlotsArray()) { |