VERIFY:\s*File:\s+.*SymbolTestApp\.(dll|exe)\s+
# Verify DumpMT
+!IFDEF:MAJOR_RUNTIME_VERSION_GE_7
+# https://github.com/dotnet/diagnostics/issues/3516
SOSCOMMAND:DumpMT <POUT>\s*Method Table:\s+(<HEXVAL>)\s+<POUT>
VERIFY:\s*Name:\s+SymbolTestApp.Program\s+
VERIFY:\s*File:\s+.*SymbolTestApp\.(dll|exe)\s+
+ENDIF:MAJOR_RUNTIME_VERSION_GE_7
SOSCOMMAND:FinalizeQueue
VERIFY:\s*SyncBlocks to be cleaned up:\s+<DECVAL>\s+
}
EnableDMLHolder dmlHolder(dml);
- TableOutput table(2, 16, AlignLeft, false);
+ TableOutput table(2, 20, AlignLeft, false);
if (nArg == 0)
{
}
}
+ ReleaseHolder<ISOSDacInterface8> sos8;
+ if (SUCCEEDED(g_sos->QueryInterface(__uuidof(ISOSDacInterface8), &sos8)))
+ {
+ CLRDATA_ADDRESS assemblyLoadContext = 0;
+ if (SUCCEEDED(sos8->GetAssemblyLoadContext(TO_CDADDR(dwStartAddr), &assemblyLoadContext)))
+ {
+ const char* title = "AssemblyLoadContext:";
+ if (assemblyLoadContext != 0)
+ {
+ table.WriteRow(title, ObjectPtr(assemblyLoadContext));
+ }
+ else
+ {
+ table.WriteRow(title, "Default ALC - The managed instance of this context doesn't exist yet.");
+ }
+ }
+ }
+
table.WriteRow("BaseSize:", PrefixHex(vMethTable.BaseSize));
table.WriteRow("ComponentSize:", PrefixHex(vMethTable.ComponentSize));
table.WriteRow("DynamicStatics:", vMethTable.bIsDynamic ? "true" : "false");
else
ExtOut("Workstation mode\n");
- if (!GetGcStructuresValid())
+ if (!GetGcStructuresValid())
{
ExtOut("In plan phase of garbage collection\n");
}
}
}
if (IsInterrupt())
- {
+ {
return COR_E_OPERATIONCANCELED;
}
return S_OK;
{
ExtOut("%s", message);
if (IsInterrupt())
- {
+ {
return COR_E_OPERATIONCANCELED;
}
return S_OK;
if (SUCCEEDED(Status))
{
ToRelease<ICLRDataEnumMemoryRegionsCallback> callback = new EnumMemoryCallback(false, true);
- ULONG32 minidumpType =
+ ULONG32 minidumpType =
(MiniDumpWithPrivateReadWriteMemory |
MiniDumpWithDataSegs |
MiniDumpWithHandleData |
//
// Return true if major runtime version (logical product version like 2.1,
-// 3.0 or 5.x). Currently only major versions of 3 or 5 are supported.
+// 3.0 or 5.x).
//
bool IsRuntimeVersion(DWORD major)
{
{
switch (major)
{
- case 5:
- return HIWORD(fileInfo.dwFileVersionMS) == 5;
case 3:
return HIWORD(fileInfo.dwFileVersionMS) == 4 && LOWORD(fileInfo.dwFileVersionMS) == 700;
default:
- _ASSERTE(FALSE);
- break;
+ return HIWORD(fileInfo.dwFileVersionMS) == major;
}
return false;
}
}
// fall through
- case 5:
- if (HIWORD(fileInfo.dwFileVersionMS) >= 5)
+ default:
+ if (HIWORD(fileInfo.dwFileVersionMS) >= major)
{
return true;
}
// fall through
break;
-
- default:
- _ASSERTE(FALSE);
- break;
}
return false;
}