Add EnableDiagnostics sub-configs for IPC, debugger, and profiler (#90159) accepted/tizen/unified/20240621.010437 accepted/tizen/unified/dev/20240701.073045
author이형주/MDE Lab(SR)/삼성전자 <leee.lee@samsung.com>
Thu, 20 Jun 2024 07:41:54 +0000 (16:41 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Thu, 20 Jun 2024 07:41:54 +0000 (16:41 +0900)
* Revert "[Tizen] Introduce EnableDebugger Config (#537)"

This reverts commit 05aa22a35cfd5c71b84d2e23f159542ac39b4ec2.

* Add EnableDiagnostics sub-configs for IPC, debugger, and profiler (#90159)

---------

Co-authored-by: Tom McDonald <tommcdon@microsoft.com>
src/coreclr/debug/ee/debugger.cpp
src/coreclr/inc/clrconfigvalues.h
src/coreclr/vm/eventing/eventpipe/ds-rt-coreclr.h
src/coreclr/vm/profilinghelper.cpp

index 51311c9..194f901 100644 (file)
@@ -1910,8 +1910,16 @@ HRESULT Debugger::Startup(void)
 
         // Allows the debugger (and profiler) diagnostics to be disabled so resources like
         // the named pipes and semaphores are not created.
-        if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_EnableDebugger) == 0)
+        if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_EnableDiagnostics) == 0)
         {
+            LOG((LF_CORDB, LL_INFO10, "Debugging disabled via EnableDiagnostics config.\n"));
+
+            return S_OK;
+        }
+        if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_EnableDiagnostics_Debugger) == 0)
+        {
+            LOG((LF_CORDB, LL_INFO10, "Debugging disabled via EnableDiagnostics_Debugger config.\n"));
+
             return S_OK;
         }
 
index 023ae65..eea255e 100644 (file)
@@ -159,10 +159,13 @@ CONFIG_DWORD_INFO(INTERNAL_BreakOnUEF, W("BreakOnUEF"), 0, "")
 CONFIG_DWORD_INFO(INTERNAL_BreakOnUncaughtException, W("BreakOnUncaughtException"), 0, "")
 
 ///
-/// Debugger
+/// Debugger, Profiler, Diagnostics IPC Ports
 ///
-RETAIL_CONFIG_DWORD_INFO(EXTERNAL_EnableDiagnostics, W("EnableDiagnostics"), 1, "Allows the profiler, and EventPipe diagnostics to be disabled")
-RETAIL_CONFIG_DWORD_INFO(EXTERNAL_EnableDebugger, W("EnableDebugger"), 1, "Allows the debugger to be disabled")
+RETAIL_CONFIG_DWORD_INFO(EXTERNAL_EnableDiagnostics, W("EnableDiagnostics"), 1, "Allows the debugger, profiler, and diagnostic IPC service ports to be disabled")
+RETAIL_CONFIG_DWORD_INFO(EXTERNAL_EnableDiagnostics_IPC, W("EnableDiagnostics_IPC"), 1, "Allows the diagnostic IPC service ports to be disabled")
+RETAIL_CONFIG_DWORD_INFO(EXTERNAL_EnableDiagnostics_Debugger, W("EnableDiagnostics_Debugger"), 1, "Allows the debugger to be disabled")
+RETAIL_CONFIG_DWORD_INFO(EXTERNAL_EnableDiagnostics_Profiler, W("EnableDiagnostics_Profiler"), 1, "Allows the profiler to be disabled")
+
 CONFIG_DWORD_INFO(INTERNAL_D__FCE, W("D::FCE"), 0, "Allows an assert when crawling the managed stack for an exception handler")
 CONFIG_DWORD_INFO(INTERNAL_DbgBreakIfLocksUnavailable, W("DbgBreakIfLocksUnavailable"), 0, "Allows an assert when the debugger can't take a lock ")
 CONFIG_DWORD_INFO(INTERNAL_DbgBreakOnErr, W("DbgBreakOnErr"), 0, "Allows an assert when we get a failing hresult")
index dd5e683..4e215bf 100644 (file)
@@ -159,7 +159,11 @@ bool
 ds_rt_config_value_get_enable (void)
 {
        STATIC_CONTRACT_NOTHROW;
-       return CLRConfig::GetConfigValue (CLRConfig::EXTERNAL_EnableDiagnostics) != 0;
+       if (CLRConfig::GetConfigValue (CLRConfig::EXTERNAL_EnableDiagnostics) == 0)
+       {
+               return false;
+       }
+    return CLRConfig::GetConfigValue (CLRConfig::EXTERNAL_EnableDiagnostics_IPC) != 0;
 }
 
 static
index 67bacc0..cd46087 100644 (file)
@@ -431,9 +431,16 @@ HRESULT ProfilingAPIUtility::InitializeProfiling()
     // NULL out / initialize members of the global profapi structure
     g_profControlBlock.Init();
 
-    if (IsCompilationProcess())
+    if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_EnableDiagnostics) == 0)
     {
-        LOG((LF_CORPROF, LL_INFO10, "**PROF: Profiling disabled for ngen process.\n"));
+        LOG((LF_CORPROF, LL_INFO10, "**PROF: Profiling disabled via EnableDiagnostics config.\n"));
+
+        return S_OK;
+    }
+    if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_EnableDiagnostics_Profiler) == 0)
+    {
+        LOG((LF_CORPROF, LL_INFO10, "**PROF: Profiling disabled via EnableDiagnostics_Profiler config.\n"));
+
         return S_OK;
     }