From e706d4ba84a4e04d617e2532d6ad592ca9b194ab Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Thu, 28 Jun 2007 20:19:16 +0000 Subject: [PATCH] - Always use PsLoadedModuleList as a list of modules. - Load kernel and hal symbols during BootPhase 1 initialization of this KD wrapper. svn path=/trunk/; revision=27317 --- reactos/ntoskrnl/kdbg/kdb_symbols.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/reactos/ntoskrnl/kdbg/kdb_symbols.c b/reactos/ntoskrnl/kdbg/kdb_symbols.c index c82d4892d13..7bf0d7b381d 100644 --- a/reactos/ntoskrnl/kdbg/kdb_symbols.c +++ b/reactos/ntoskrnl/kdbg/kdb_symbols.c @@ -611,9 +611,9 @@ KdbSymProcessBootSymbols(IN PANSI_STRING AnsiFileName) DPRINT("KdbSymProcessBootSymbols(%wZ)\n", &ModuleName); - /* Check which list we should use */ - ListHead = (KeLoaderBlock) ? &KeLoaderBlock->LoadOrderListHead : - &PsLoadedModuleList; + /* We use PsLoadedModuleList here, otherwise (in case of + using KeLoaderBlock) all our data will be just lost */ + ListHead = &PsLoadedModuleList; /* Found module we are interested in */ NextEntry = ListHead->Flink; @@ -690,6 +690,7 @@ KdbSymInit(PKD_DISPATCH_TABLE DispatchTable, PCHAR p1, p2; int Found; char YesNo; + ANSI_STRING FileName; DPRINT("KdbSymInit() BootPhase=%d\n", BootPhase); @@ -759,6 +760,16 @@ KdbSymInit(PKD_DISPATCH_TABLE DispatchTable, RosSymInitKernelMode(); } + else if (BootPhase == 1) + { + /* Load symbols for NTOSKRNL.EXE and HAL.DLL*/ + /* FIXME: Load as 1st and 2nd entries of InLoadOrderList instead + of hardcoding them here! */ + RtlInitAnsiString(&FileName, "\\SystemRoot\\System32\\NTOSKRNL.EXE"); + KdbSymProcessBootSymbols(&FileName); + RtlInitAnsiString(&FileName, "\\SystemRoot\\System32\\HAL.DLL"); + KdbSymProcessBootSymbols(&FileName); + } } /* EOF */