- Loaded symbols also for kernel mode dll's.
Modified: trunk/reactos/ntoskrnl/dbg/kdb_symbols.c
_____
Modified: trunk/reactos/ntoskrnl/dbg/kdb_symbols.c
--- trunk/reactos/ntoskrnl/dbg/kdb_symbols.c 2005-01-01 11:47:33 UTC
(rev 12694)
+++ trunk/reactos/ntoskrnl/dbg/kdb_symbols.c 2005-01-01 11:49:57 UTC
(rev 12695)
@@ -914,6 +914,8 @@
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 @@
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;