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);