From b95c9c0ebabff9589d85cc0247639fdd4b09f9a2 Mon Sep 17 00:00:00 2001 From: Hartmut Birr Date: Sat, 1 Jan 2005 11:49:57 +0000 Subject: [PATCH] - Loaded symbols also for kernel mode dll's. svn path=/trunk/; revision=12695 --- reactos/ntoskrnl/dbg/kdb_symbols.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/reactos/ntoskrnl/dbg/kdb_symbols.c b/reactos/ntoskrnl/dbg/kdb_symbols.c index e74c14e1f29..5da9cbe3b6e 100644 --- a/reactos/ntoskrnl/dbg/kdb_symbols.c +++ b/reactos/ntoskrnl/dbg/kdb_symbols.c @@ -914,6 +914,8 @@ KdbSymProcessSymbolFile(IN PVOID ModuleLoadBase, PIMAGE_SYMBOL_INFO SymbolInfo; ANSI_STRING AnsiString; PCHAR Extension; + ULONG i; + const char *KnownExtension[] = {".exe", ".sys", ".dll"}; DPRINT("Module %s is a symbol file\n", FileName); @@ -928,22 +930,21 @@ KdbSymProcessSymbolFile(IN PVOID ModuleLoadBase, DPRINT("base: %s (Length %d)\n", TmpBaseName, Length); - strcpy(TmpFileName, TmpBaseName); - strcat(TmpFileName, ".sys"); - RtlInitAnsiString(&AnsiString, TmpFileName); - - RtlAnsiStringToUnicodeString(&ModuleName, &AnsiString, TRUE); - ModuleObject = LdrGetModuleObject(&ModuleName); - RtlFreeUnicodeString(&ModuleName); - if (ModuleObject == NULL) + for (i = 0; i < sizeof(KnownExtension) / sizeof(*KnownExtension); i++) { strcpy(TmpFileName, TmpBaseName); - strcat(TmpFileName, ".exe"); + strcat(TmpFileName, KnownExtension[i]); RtlInitAnsiString(&AnsiString, TmpFileName); + RtlAnsiStringToUnicodeString(&ModuleName, &AnsiString, TRUE); ModuleObject = LdrGetModuleObject(&ModuleName); RtlFreeUnicodeString(&ModuleName); + if (ModuleObject) + { + break; + } } + if (ModuleObject != NULL) { SymbolInfo = (PIMAGE_SYMBOL_INFO) &ModuleObject->TextSection->SymbolInfo;