From 93863dbc8ae4a6019212b0297e7906ebb59a20d7 Mon Sep 17 00:00:00 2001 From: goaaats <16760685+goaaats@users.noreply.github.com> Date: Sun, 7 Nov 2021 16:43:08 +0100 Subject: [PATCH] feat: add DALAMUD_WAIT_DEBUGGER env var --- .../Configuration/Internal/EnvironmentConfiguration.cs | 5 +++++ Dalamud/EntryPoint.cs | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/Dalamud/Configuration/Internal/EnvironmentConfiguration.cs b/Dalamud/Configuration/Internal/EnvironmentConfiguration.cs index 8a2a61b4f..2cb89915c 100644 --- a/Dalamud/Configuration/Internal/EnvironmentConfiguration.cs +++ b/Dalamud/Configuration/Internal/EnvironmentConfiguration.cs @@ -27,6 +27,11 @@ namespace Dalamud.Configuration.Internal /// public static bool DalamudForceMinHook { get; } = GetEnvironmentVariable("DALAMUD_FORCE_MINHOOK"); + /// + /// Gets a value indicating whether or not Dalamud should wait for a debugger to be attached when initializing. + /// + public static bool DalamudWaitForDebugger { get; } = GetEnvironmentVariable("DALAMUD_WAIT_DEBUGGER"); + private static bool GetEnvironmentVariable(string name) => bool.Parse(Environment.GetEnvironmentVariable(name) ?? "false"); } diff --git a/Dalamud/EntryPoint.cs b/Dalamud/EntryPoint.cs index e42df3fbd..efba9a7ff 100644 --- a/Dalamud/EntryPoint.cs +++ b/Dalamud/EntryPoint.cs @@ -52,6 +52,14 @@ namespace Dalamud /// The containing information needed to initialize Dalamud. private static void RunThread(DalamudStartInfo info) { + if (EnvironmentConfiguration.DalamudWaitForDebugger) + { + while (!Debugger.IsAttached) + { + Thread.Sleep(100); + } + } + // Setup logger var levelSwitch = InitLogging(info.WorkingDirectory);