diff --git a/src/coreclr/debug/ee/debugger.cpp b/src/coreclr/debug/ee/debugger.cpp index 48041a442ac015..3737d94a4e7177 100644 --- a/src/coreclr/debug/ee/debugger.cpp +++ b/src/coreclr/debug/ee/debugger.cpp @@ -2774,6 +2774,13 @@ DebuggerMethodInfo *Debugger::GetOrCreateMethodInfo(Module *pModule, mdMethodDef } CONTRACTL_END; +#ifdef DACCESS_COMPILE + if (!HasLazyData()) + { + return NULL; + } +#endif // #ifdef DACCESS_COMPILE + DebuggerMethodInfo *info = NULL; // When dump debugging, we don't expect to have a lock, diff --git a/src/coreclr/vm/frames.h b/src/coreclr/vm/frames.h index 2c451984354ae8..6444b6ee776124 100644 --- a/src/coreclr/vm/frames.h +++ b/src/coreclr/vm/frames.h @@ -1041,8 +1041,10 @@ typedef DPTR(class SoftwareExceptionFrame) PTR_SoftwareExceptionFrame; class SoftwareExceptionFrame : public Frame { TADDR m_ReturnAddress; - T_CONTEXT m_Context; T_KNONVOLATILE_CONTEXT_POINTERS m_ContextPointers; + // This T_CONTEXT field needs to be the last field in the class because it is a + // different size between Linux (pal.h) and the Windows cross-DAC (winnt.h). + T_CONTEXT m_Context; public: #ifndef DACCESS_COMPILE