Author: ion Date: Tue Feb 20 09:51:16 2007 New Revision: 25858
URL: http://svn.reactos.org/svn/reactos?rev=25858&view=rev Log: - Fix loading of boot symbols. - Fix bug in KdpLoadSymbolsStateChange, we were never actually copying the pathname. - Output of lm: kd> lm start end module name 80000000 80283000 nt (export symbols) ntoskrnl.exe 80283000 8029d000 hal (export symbols) halup.dll
Modified: branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdapi.c branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdinit.c
Modified: branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdapi.c URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/... ============================================================================== --- branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdapi.c (original) +++ branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdapi.c Tue Feb 20 09:51:16 2007 @@ -845,6 +845,7 @@ { /* Setup the information */ WaitStateChange.u.LoadSymbols.PathNameLength = PathName->Length; + RtlCopyMemory(KdpPathBuffer, PathName->Buffer, PathName->Length); Data.Buffer = KdpPathBuffer; Data.Length = WaitStateChange.u.LoadSymbols.PathNameLength; ExtraData = &Data;
Modified: branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdinit.c URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/... ============================================================================== --- branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdinit.c (original) +++ branches/alex-kd-branch/reactos/ntoskrnl/kd64/kdinit.c Tue Feb 20 09:51:16 2007 @@ -68,8 +68,9 @@ ANSI_STRING ImageName; PLDR_DATA_TABLE_ENTRY LdrEntry; PLIST_ENTRY NextEntry; - ULONG i, j; + ULONG i, j, Length; CHAR NameBuffer[256]; + PWCHAR Name;
/* Check if this is Phase 1 */ if (BootPhase) @@ -230,11 +231,17 @@ InLoadOrderLinks);
/* Generate the image name */ - for (j = 0; j < LdrEntry->BaseDllName.Length / 2; j++) + Name = LdrEntry->FullDllName.Buffer; + Length = LdrEntry->FullDllName.Length / sizeof(WCHAR); + j = 0; + do { /* Do cheap Unicode to ANSI conversion */ - NameBuffer[j] = (CHAR)LdrEntry->BaseDllName.Buffer[j]; - } + NameBuffer[j++] = (CHAR)*Name++; + } while (j < Length); + + /* Null-terminate */ + NameBuffer[j] = ANSI_NULL;
/* Load symbols for image */ RtlInitAnsiString(&ImageName, NameBuffer);