diff options
Diffstat (limited to 'src/debug/daccess/nidump.cpp')
-rw-r--r-- | src/debug/daccess/nidump.cpp | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/src/debug/daccess/nidump.cpp b/src/debug/daccess/nidump.cpp index 7812bd72f0..dca36b97eb 100644 --- a/src/debug/daccess/nidump.cpp +++ b/src/debug/daccess/nidump.cpp @@ -3479,7 +3479,15 @@ size_t NativeImageDumper::TranslateSymbol(IXCLRDisassemblySupport *dis, case PRECODE_INVALID: precodeName = "InvalidPrecode"; break; case PRECODE_STUB: +#ifdef HAS_RELATIVE_STUB_PRECODE + _ASSERTE(!"unreachable"); break; +#else // HAS_RELATIVE_STUB_PRECODE precodeName = "StubPrecode"; break; +#endif // HAS_RELATIVE_STUB_PRECODE +#ifdef HAS_RELATIVE_STUB_PRECODE + case PRECODE_RELATIVE_STUB: + precodeName = "RelativeStubPrecode"; break; +#endif // HAS_RELATIVE_STUB_PRECODE #ifdef HAS_NDIRECT_IMPORT_PRECODE case PRECODE_NDIRECT_IMPORT: precodeName = "NDirectImportPrecode"; break; @@ -7490,15 +7498,16 @@ void NativeImageDumper::DumpPrecode( PTR_Precode precode, PTR_Module module ) PrecodeType pType = precode->GetType(); switch(pType) { -#define DISPLAY_PRECODE(type) \ +#define DISPLAY_PRECODE(type, field) \ IF_OPT_AND(PRECODES, METHODDESCS) \ { \ PTR_ ## type p( precode->As ## type () ); \ DisplayStartStructure( # type, \ DPtrToPreferredAddr(p), \ sizeof(*p), ALWAYS ); \ - WriteFieldMethodDesc( m_pMethodDesc, \ - p->m_pMethodDesc, \ + PTR_MethodDesc precodeMD(p->GetMethodDesc()); \ + WriteFieldMethodDesc( field, \ + precodeMD, \ type, ALWAYS ); \ TADDR target = p->GetTarget(); \ DisplayWriteElementPointer("Target",\ @@ -7508,10 +7517,18 @@ void NativeImageDumper::DumpPrecode( PTR_Precode precode, PTR_Module module ) } case PRECODE_STUB: - DISPLAY_PRECODE(StubPrecode); break; +#ifdef HAS_RELATIVE_STUB_PRECODE + _ASSERTE(!"unreachable"); break; +#else // HAS_RELATIVE_STUB_PRECODE + DISPLAY_PRECODE(StubPrecode, m_pMethodDesc); break; +#endif // HAS_RELATIVE_STUB_PRECODE +#ifdef HAS_RELATIVE_STUB_PRECODE + case PRECODE_RELATIVE_STUB: + DISPLAY_PRECODE(RelativeStubPrecode, m_pMethodDescOffset); break; +#endif // HAS_RELATIVE_STUB_PRECODE #ifdef HAS_NDIRECT_IMPORT_PRECODE case PRECODE_NDIRECT_IMPORT: - DISPLAY_PRECODE(NDirectImportPrecode); break; + DISPLAY_PRECODE(NDirectImportPrecode, m_pMethodDesc); break; #endif #ifdef HAS_FIXUP_PRECODE case PRECODE_FIXUP: @@ -7621,7 +7638,7 @@ void NativeImageDumper::DumpPrecode( PTR_Precode precode, PTR_Module module ) #endif // HAS_RELATIVE_FIXUP_PRECODE #ifdef HAS_THISPTR_RETBUF_PRECODE case PRECODE_THISPTR_RETBUF: - DISPLAY_PRECODE(ThisPtrRetBufPrecode); break; + DISPLAY_PRECODE(ThisPtrRetBufPrecode, m_pMethodDesc); break; #endif default: _ASSERTE( !"Unsupported precode type" ); |