diff --git a/eng/Version.Details.props b/eng/Version.Details.props index aa0d11c54a..1922cd7667 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -30,8 +30,8 @@ This file should be imported by eng/Versions.props 10.0.7-servicing.26217.108 10.0.7-servicing.26217.108 - 4.0.725402 - 4.0.725402 + 4.0.726101 + 4.0.726101 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 649f9dfd3b..3b38bec618 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,13 +1,13 @@ - + https://github.com/microsoft/clrmd - b15a248d70b18b49e129bb55dc334bf34c565406 + fb4a9376435036da1efcf83450a912c0ddf86908 - + https://github.com/microsoft/clrmd - b15a248d70b18b49e129bb55dc334bf34c565406 + fb4a9376435036da1efcf83450a912c0ddf86908 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 8ffec56516..54efdf8936 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -43,11 +43,11 @@ 5.0.0 4.5.1 8.0.1 - 4.5.5 + 4.6.3 4.3.0 - 4.5.4 - 8.0.0 - 8.0.5 + 4.6.3 + 10.0.3 + 10.0.3 2.0.3 1.2.0-beta.556 10.0.26100.1 diff --git a/src/SOS/extensions/hostcoreclr.cpp b/src/SOS/extensions/hostcoreclr.cpp index 36ae77c82f..0e690a20c9 100644 --- a/src/SOS/extensions/hostcoreclr.cpp +++ b/src/SOS/extensions/hostcoreclr.cpp @@ -146,7 +146,7 @@ struct FileFind public: bool Open(const char* directory) - { + { m_directory = directory; m_dir = opendir(directory); if (m_dir == nullptr) { @@ -184,7 +184,7 @@ struct FileFind fullFilename.append(m_entry->d_name); struct stat sb; - if (stat(fullFilename.c_str(), &sb) == 0) + if (stat(fullFilename.c_str(), &sb) == 0) { if (S_ISREG(sb.st_mode) || S_ISDIR(sb.st_mode)) { return true; @@ -205,7 +205,7 @@ struct FileFind } } - bool IsDirectory() + bool IsDirectory() { return m_entry->d_type == DT_DIR; } @@ -246,7 +246,7 @@ struct FileFind } } - bool IsDirectory() + bool IsDirectory() { return (m_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; } @@ -327,10 +327,13 @@ static std::string GetTpaListForRuntimeVersion( // assembly version than the ones in the ones in the framework. The test could just // have a list of assemblies we pack with the versions, and if we end up using a newer assembly // fail the test and point to update this list. - - if (hostRuntimeVersion.Major > 0 && hostRuntimeVersion.Major < 9) + // This is also not fully correct as it doesn't consider the patch version (i.e. a 10.0.3 host doesn't + // satisfy a 10.0.7 requirement). The only correct fix is to look at the two lists and choose the highest version of each assembly. + if (hostRuntimeVersion.Major > 0 && hostRuntimeVersion.Major < 10) { AddFileToTpaList(directory, "System.Collections.Immutable.dll", tpaList); + AddFileToTpaList(directory, "System.Text.Json.dll", tpaList); + AddFileToTpaList(directory, "System.Text.Encodings.Web.dll", tpaList); } // Trust the runtime assemblies that are newer than the ones needed and provided by SOS's managed @@ -369,7 +372,7 @@ static bool FindDotNetVersion(const RuntimeVersion& runtimeVersion, std::string& } } } - } + } while (find.Next()); } @@ -457,7 +460,7 @@ struct ProbingStrategy /**********************************************************************\ * Returns the path to the coreclr to use for hosting and it's - * directory. Attempts to use the best installed version of the + * directory. Attempts to use the best installed version of the * runtime, otherwise it defaults to the target's runtime version. \**********************************************************************/ static HRESULT GetHostRuntime(std::string& coreClrPath, std::string& hostRuntimeDirectory, RuntimeVersion& hostRuntimeVersion) @@ -659,7 +662,7 @@ static HRESULT InitializeNetCoreHost() return hr; } } - try + try { hr = g_extensionsInitializeFunc(sosModulePath.c_str()); }