From 942b0221e85bdcf5a4bca7865fb4c72ffa105309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Mon, 20 Mar 2023 03:10:14 +0100 Subject: [PATCH] [NTOS:KDBG] Temporarily HACK-work-around symbols loading by disabling them at BootPhase 0. Of course, now that we **correctly** set the LoadSymbools setting, we attempt loading symbols at BootPhase 0 and everything goes awry! So introduce that hack to fallback to our old behaviour. A proper fix (and removal of the hack) will be done in future commits. --- ntoskrnl/kdbg/kdb_symbols.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ntoskrnl/kdbg/kdb_symbols.c b/ntoskrnl/kdbg/kdb_symbols.c index 3222c40ce6d..69861f23ed8 100644 --- a/ntoskrnl/kdbg/kdb_symbols.c +++ b/ntoskrnl/kdbg/kdb_symbols.c @@ -344,6 +344,10 @@ BOOLEAN KdbSymInit( _In_ ULONG BootPhase) { +#if 1 // FIXME: This is a workaround HACK!! + static BOOLEAN OrigLoadSymbols = FALSE; +#endif + DPRINT("KdbSymInit() BootPhase=%d\n", BootPhase); if (BootPhase == 0) @@ -398,6 +402,13 @@ KdbSymInit( while (*CommandLine && !isspace(*CommandLine)) ++CommandLine; } + +#if 1 // FIXME: This is a workaround HACK!! +// Save the actual value of LoadSymbols but disable it for BootPhase 0. + OrigLoadSymbols = LoadSymbols; + LoadSymbols = FALSE; + return OrigLoadSymbols; +#endif } else if (BootPhase == 1) { @@ -406,6 +417,11 @@ KdbSymInit( KIRQL OldIrql; PLIST_ENTRY ListEntry; +#if 1 // FIXME: This is a workaround HACK!! +// Now, restore the actual value of LoadSymbols. + LoadSymbols = OrigLoadSymbols; +#endif + /* Do not continue loading symbols if we have less than 96MB of RAM */ if (MmNumberOfPhysicalPages < (96 * 1024 * 1024 / PAGE_SIZE)) LoadSymbols = FALSE;