summaryrefslogtreecommitdiff
path: root/src/debug/daccess/nidump.cpp
diff options
context:
space:
mode:
authorGleb Balykov <g.balykov@samsung.com>2017-06-23 15:48:48 +0300
committerGleb Balykov <g.balykov@samsung.com>2017-07-10 16:37:05 +0300
commitc4c04ea45cda3194cdf2189d757b96602ea344ee (patch)
treee04539919b2ce293ec81397ab5715ea8455d69b9 /src/debug/daccess/nidump.cpp
parentcf1fb9e17fc8b6ee849edab5a696d0ec5c6eadd2 (diff)
downloadcoreclr-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.cpp9
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())
{