Problems solved:
Jason provided a lot of assistance in resolving the performance issues with
the checked build. A temporary work around seems to be to NOT use the symbol
in the path except when you REALLY want to update your symbols, but I will
let him address that.
Other problems found:
It seems that when using .kdfiles to map to the SYS file to an alternate,
the pdb will not automatically map as well. That really makes no sense,
because I map the deriver file to the target file from the build, which is
the same path to find the PDB as the SYS file in SystemRoot\Drivers. This
means that it is a pain in the ass to change the SYS file because it entails
booting to a clean OS that will not load your driver, typically Safe Mode,
replace the SYS files, and then boot BACK to the test OS that will load your
driver. I thought .kdfiles that if .kdfiles changed the path to the mapped
path, that it would do the same for the pdb file, but from what I have seen
thus far that is not the case.
Case in point:
After a rebuild, but before refreshing
:\Windows\System32\Drivers\OSEEntry.sys
1: kd> .kdfiles
KD file assocations loaded from ‘C:\Windows\Mapped.ini’
SystemRoot\System32\Drivers\OSEEntry.sys ->
C:\SandBox\OpenSea\SeaKernel\OSE\objchk_wnet_x86\i386\OSEEntry.sys
1: kd> bu OSEEntry!OSEEvtDevicePrepareHardware
1: kd> !reload
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
SYMSRV:
c:\Symbols\Cache\ntkrnlmp.pdb\ED2A609FD13241BFB1E849ABEE67AE3B1\ntkrnlmp.pdb
not found
SYMSRV: ntkrnlmp.pdb\ED2A609FD13241BFB1E849ABEE67AE3B1\ntkrnlmp.pdb not
found
DBGHELP:
c:\symbols\ntkrnlmp.pdb\7DE39A3E89DA4B378B95A09FA3A6398C2\ntkrnlmp.pdb -
mismatched pdb
DBGHELP:
c:\symbols\ntkrnlmp.pdb\AA1EE1B2A63A4232A379F3EFDDC4CFE82\ntkrnlmp.pdb -
mismatched pdb
DBGHELP: nt - public symbols
c:\symbols\ntkrnlmp.pdb\ED2A609FD13241BFB1E849ABEE67AE3B1\ntkrnlmp.pdb
Loading Kernel Symbols
…
Loading unloaded module list
…
Loading User Symbols
…
SYMSRV:
c:\Symbols\Cache\OSEEntry.pdb\4E2ABB9D0C4B4AC0AAB1C0DE4A5CF91F1\OSEEntry.pdb
not found
SYMSRV: OSEEntry.pdb\4E2ABB9D0C4B4AC0AAB1C0DE4A5CF91F1\OSEEntry.pdb not
found
DBGHELP: c:\symbols\OSEEntry.pdb - file not found
DBGHELP: c:\symbols\symbols\sys\OSEEntry.pdb - file not found
DBGHELP: c:\symbols\sys\OSEEntry.pdb - file not found
DBGHELP:
c:\sandbox\opensea\seakernel\ose\objchk_wnet_x86\i386\OSEEntry.pdb -
mismatched pdb
DBGHELP: Couldn’t load mismatched pdb for OSEEntry.sys
*** ERROR: Module load completed but symbols could not be loaded for
OSEEntry.sys
DBGHELP: OSEEntry - no symbols loaded
The PDB file sits in the same path as the re-mapped SYS file, indeed has the
same date/time stamp.
–
The personal opinion of
Gary G. Little