From 692e30744e35acf90f386bd58bee80878c044d77 Mon Sep 17 00:00:00 2001 From: Steve MacLean Date: Tue, 24 Mar 2020 12:16:34 -0400 Subject: [PATCH] dotnet-dump analyze dso (#944) Fix dso for cross dac case --- src/SOS/Strike/strike.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/SOS/Strike/strike.cpp b/src/SOS/Strike/strike.cpp index fb44ec32a..61b30ef01 100644 --- a/src/SOS/Strike/strike.cpp +++ b/src/SOS/Strike/strike.cpp @@ -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 -- 2.34.1