From 71ecdf274bf84d3f8b3879566aca4b0137ffa838 Mon Sep 17 00:00:00 2001 From: Juan Hoyos <19413848+hoyosjs@users.noreply.github.com> Date: Tue, 14 Sep 2021 15:04:59 -0700 Subject: [PATCH 1/2] Undo breaking change compat --- src/coreclr/debug/daccess/daccess.cpp | 34 +++++++++++++++++++-------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/coreclr/debug/daccess/daccess.cpp b/src/coreclr/debug/daccess/daccess.cpp index 61f0d827e60f19..e6e7c7a8ef42c4 100644 --- a/src/coreclr/debug/daccess/daccess.cpp +++ b/src/coreclr/debug/daccess/daccess.cpp @@ -6077,13 +6077,20 @@ ClrDataAccess::GetMethodVarInfo(MethodDesc* methodDesc, SUPPORTS_DAC; COUNT_T countNativeVarInfo; NewHolder nativeVars(NULL); - - NativeCodeVersion requestedNativeCodeVersion = ExecutionManager::GetNativeCodeVersion(address); - if (requestedNativeCodeVersion.IsNull() || requestedNativeCodeVersion.GetNativeCode() == NULL) + TADDR nativeCodeStartAddr; + if (address != NULL) { - return E_INVALIDARG; + NativeCodeVersion requestedNativeCodeVersion = ExecutionManager::GetNativeCodeVersion(address); + if (requestedNativeCodeVersion.IsNull() || requestedNativeCodeVersion.GetNativeCode() == NULL) + { + return E_INVALIDARG; + } + nativeCodeStartAddr = PCODEToPINSTR(requestedNativeCodeVersion.GetNativeCode()); + } + else + { + nativeCodeStartAddr - PCODEToPINSTR(methodDesc->GetNativeCode()); } - TADDR nativeCodeStartAddr = PCODEToPINSTR(requestedNativeCodeVersion.GetNativeCode()); DebugInfoRequest request; request.InitFromStartingAddr(methodDesc, nativeCodeStartAddr); @@ -6128,13 +6135,20 @@ ClrDataAccess::GetMethodNativeMap(MethodDesc* methodDesc, // Use the DebugInfoStore to get IL->Native maps. // It doesn't matter whether we're jitted, ngenned etc. - - NativeCodeVersion requestedNativeCodeVersion = ExecutionManager::GetNativeCodeVersion(address); - if (requestedNativeCodeVersion.IsNull() || requestedNativeCodeVersion.GetNativeCode() == NULL) + TADDR nativeCodeStartAddr; + if (address != NULL) { - return E_INVALIDARG; + NativeCodeVersion requestedNativeCodeVersion = ExecutionManager::GetNativeCodeVersion(address); + if (requestedNativeCodeVersion.IsNull() || requestedNativeCodeVersion.GetNativeCode() == NULL) + { + return E_INVALIDARG; + } + nativeCodeStartAddr = PCODEToPINSTR(requestedNativeCodeVersion.GetNativeCode()); + } + else + { + nativeCodeStartAddr = PCODEToPINSTR(methodDesc->GetNativeCode()); } - TADDR nativeCodeStartAddr = PCODEToPINSTR(requestedNativeCodeVersion.GetNativeCode()); DebugInfoRequest request; request.InitFromStartingAddr(methodDesc, nativeCodeStartAddr); From 737b5b0572bac51e6e568ddbd8f4293b6ba28734 Mon Sep 17 00:00:00 2001 From: Juan Hoyos <19413848+hoyosjs@users.noreply.github.com> Date: Tue, 14 Sep 2021 15:16:08 -0700 Subject: [PATCH 2/2] Fix compilation --- src/coreclr/debug/daccess/daccess.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/debug/daccess/daccess.cpp b/src/coreclr/debug/daccess/daccess.cpp index e6e7c7a8ef42c4..dee4fe132fa74c 100644 --- a/src/coreclr/debug/daccess/daccess.cpp +++ b/src/coreclr/debug/daccess/daccess.cpp @@ -6089,7 +6089,7 @@ ClrDataAccess::GetMethodVarInfo(MethodDesc* methodDesc, } else { - nativeCodeStartAddr - PCODEToPINSTR(methodDesc->GetNativeCode()); + nativeCodeStartAddr = PCODEToPINSTR(methodDesc->GetNativeCode()); } DebugInfoRequest request;