dotnet-dump analyze dso (#944)
authorSteve MacLean <Steve.MacLean@microsoft.com>
Tue, 24 Mar 2020 16:16:34 +0000 (12:16 -0400)
committerGitHub <noreply@github.com>
Tue, 24 Mar 2020 16:16:34 +0000 (12:16 -0400)
Fix dso for cross dac case

src/SOS/Strike/strike.cpp

index fb44ec32afe4b65c763ec37ede6807e87fc28617..61b30ef0109b4004592c181c7452a528c26d2512 100644 (file)
@@ -642,15 +642,19 @@ HRESULT DumpStackObjectsRaw(size_t nArg, __in_z LPSTR exprBottom, __in_z LPSTR e
     }
     
 #ifndef FEATURE_PAL
-    NT_TIB teb;
-    ULONG64 dwTebAddr=0;
-    HRESULT hr = g_ExtSystem->GetCurrentThreadTeb(&dwTebAddr);
-    if (SUCCEEDED(hr) && SafeReadMemory (TO_TADDR(dwTebAddr), &teb, sizeof (NT_TIB), NULL))
+    if ((g_pRuntime->GetRuntimeConfiguration() == IRuntime::WindowsCore) ||
+        (g_pRuntime->GetRuntimeConfiguration() == IRuntime::WindowsDesktop))
     {
-        if (StackTop > TO_TADDR(teb.StackLimit) && StackTop <= TO_TADDR(teb.StackBase))
+        NT_TIB teb;
+        ULONG64 dwTebAddr = 0;
+        HRESULT hr = g_ExtSystem->GetCurrentThreadTeb(&dwTebAddr);
+        if (SUCCEEDED(hr) && SafeReadMemory(TO_TADDR(dwTebAddr), &teb, sizeof(NT_TIB), NULL))
         {
-            if (StackBottom == 0 || StackBottom > TO_TADDR(teb.StackBase))
-                StackBottom = TO_TADDR(teb.StackBase);
+            if (StackTop > TO_TADDR(teb.StackLimit) && StackTop <= TO_TADDR(teb.StackBase))
+            {
+                if (StackBottom == 0 || StackBottom > TO_TADDR(teb.StackBase))
+                    StackBottom = TO_TADDR(teb.StackBase);
+            }
         }
     }
 #endif