[Tizen] Enable Hot Reload debugger API.
authorMikhail Kurinnoi <m.kurinnoi@samsung.com>
Thu, 7 Apr 2022 12:21:54 +0000 (15:21 +0300)
committerGleb Balykov <g.balykov@samsung.com>
Tue, 27 Sep 2022 12:50:22 +0000 (15:50 +0300)
Note, we use part debugger API related to EnC in order to work with Hot Reload from debugger.
EnC itself not implemented (runtime don't have code for Linux arm32/arm64/x86 that could "jump" from old method version into new method version).
At this moment, runtime don't support Hot Reload for Linux/Tizen x86.

src/coreclr/clrdefinitions.cmake
src/coreclr/debug/di/module.cpp

index 796032b..7dd2904 100644 (file)
@@ -65,6 +65,9 @@ if(CLR_CMAKE_TARGET_ARCH_AMD64 OR (CLR_CMAKE_TARGET_ARCH_I386 AND CLR_CMAKE_TARG
     add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_ENC_SUPPORTED>)
   endif(CLR_CMAKE_TARGET_WIN32)
 endif(CLR_CMAKE_TARGET_ARCH_AMD64 OR (CLR_CMAKE_TARGET_ARCH_I386 AND CLR_CMAKE_TARGET_WIN32))
+if(CLR_CMAKE_TARGET_TIZEN_LINUX AND NOT CLR_CMAKE_TARGET_ARCH_I386)
+  add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_TIZEN_HOT_RELOAD_SUPPORTED>)
+endif(CLR_CMAKE_TARGET_TIZEN_LINUX)
 
 # Features - please keep them alphabetically sorted
 if(CLR_CMAKE_TARGET_WIN32)
index 6ae996c..e72e765 100644 (file)
@@ -2158,7 +2158,7 @@ HRESULT CordbModule::ApplyChanges(ULONG  cbMetaData,
     FAIL_IF_NEUTERED(this);
     ATT_REQUIRE_STOPPED_MAY_FAIL(GetProcess());
 
-#ifdef FEATURE_ENC_SUPPORTED
+#if defined(FEATURE_ENC_SUPPORTED) || defined(FEATURE_TIZEN_HOT_RELOAD_SUPPORTED)
     // We enable EnC back in code:CordbModule::SetJITCompilerFlags.
     // If EnC isn't enabled, then we'll fail in the LS when we try to ApplyChanges.
     // We'd expect a well-behaved debugger to never actually land here.
@@ -2274,7 +2274,7 @@ HRESULT CordbModule::ApplyChangesInternal(ULONG  cbMetaData,
     if (m_vmDomainFile.IsNull())
         return E_UNEXPECTED;
 
-#ifdef FEATURE_ENC_SUPPORTED
+#if defined(FEATURE_ENC_SUPPORTED) || defined(FEATURE_TIZEN_HOT_RELOAD_SUPPORTED)
     HRESULT hr;
 
     void * pRemoteBuf = NULL;