Fix LoadNativeSymbols for cross-dac (#929)
authorSteve MacLean <Steve.MacLean@microsoft.com>
Thu, 19 Mar 2020 21:10:36 +0000 (17:10 -0400)
committerGitHub <noreply@github.com>
Thu, 19 Mar 2020 21:10:36 +0000 (17:10 -0400)
src/SOS/SOS.NETCore/SymbolReader.cs

index 2cd025443e985964e35df22b0469c295a97aa7b1..1ee6180939fc13c8c7c53f6e89906a3901dd8c73 100644 (file)
@@ -282,7 +282,16 @@ namespace SOS
                 else if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
                 {
                     var peFile = new PEFile(new StreamAddressSpace(stream), true);
-                    generator = new PEFileKeyGenerator(s_tracer, peFile, moduleFilePath);
+                    if (peFile.IsValid())
+                    {
+                        generator = new PEFileKeyGenerator(s_tracer, peFile, moduleFilePath);
+                    }
+                    else
+                    {
+                        // Support loading ELF files on Windows for the cross-dac
+                        var elfFile = new ELFFile(new StreamAddressSpace(stream), 0, true);
+                        generator = new ELFFileKeyGenerator(s_tracer, elfFile, moduleFilePath);
+                    }
                 }
                 else {
                     return;