- Loaded symbols also for kernel mode dll's.

svn path=/trunk/; revision=12695
This commit is contained in:
Hartmut Birr 2005-01-01 11:49:57 +00:00
parent 2e5a5b050c
commit b95c9c0eba

View file

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