QUERY : WinDBG: mismatched pdb on Win 2008

good afternoon:

i am trying to debug a MultiPath (MP) I/O (MPIO) Device Specific Module (DSM)
using WinDBG. i was quite successful when using Windows Server 2003 (WS3).
however, when i moved the target to Windows Server 2008 (WS8), i ran into
problems: i cannot enable tracing and i cannot do source-level debugging
at all because the symbols in the DSM cannot be found.

SETUP

  • the target and debug machine are connected using a serial connection.

  • i enable debug in target’s WS8 boot options.

  • WinDBG has been setup with the correct symbol path:
    SRV*C:\Symbols\WebSymbols*http://msdl.microsoft.com/download/symbols;C:\Symbols\DsmSymbols

  • the source and image paths have also been setup correctly.

  • after WinDBG is connected to the target, i enter these values for tracing:

  • ed nt!Kd_DEFAULT_MASK 0xFFFFFFFF

  • ed nt!Kd_IHVDRIVER_MASK 0xFFFFFFFF

  • ed nt!Kd_MSDSM_MASK 0xFFFFFFFF

  • however, when i access the MP disks, i do not see any trace messages at all.
    note that my DSM is called ARDSM and uses DbgPrintEx() with Component ID
    IHVDRIVER for WinDBG tracing. even though i have set the correct mask to
    enable tracing, no trace messages are seen.

ERRORS

  • firstly, even when the multipathed volume is accessed, no trace messages
    are seen at all on the WinDBG screen.

  • secondly, when i attempt to set a breakpoint in ARDSM, i get an error.
    the relevant portion of the log is given below.

1: kd> !sym noisy
noisy mode - symbol prompts on

[…]

_[…]

1: kd> bp ardsm!DsmInterpretError
Loading symbols for 82926000 ardsm.sys ->
SYMSRV: C:\Symbols\WebSymbols\ardsm.pdb\9810D7AD78B24E1D9702C3D0D755A7121\ardsm.pdb not found
SYMSRV: http://msdl.microsoft.com/download/symbols/ardsm.pdb/9810D7AD78B24E1D9702C3D0D755A7121/ardsm.pdb not found
DBGHELP: C:\Symbols\DsmSymbols\ardsm.pdb - mismatched pdb
DBGHELP: C:\Symbols\DsmSymbols\sys\ardsm.pdb - file not found
DBGHELP: C:\Symbols\DsmSymbols\symbols\sys\ardsm.pdb - file not found
DBGHELP: c:\mpio_dev\hardsm\development\mpio\mpiodsm2008\arystor\ardsm\objfre_wlh_x86\i386\ardsm.pdb - file not found
DBGHELP: Couldn’t load mismatched pdb for ardsm.sys
ardsm.sys
*** ERROR: Module load completed but symbols could not be loaded for ardsm.sys
DBGHELP: ardsm - no symbols loaded
Couldn’t resolve error at ‘ardsm!DsmInterpretError’

note that, even though the correct PDB file is available in
C:\Symbols\DsmSymbols, i get the error: mismatched PDB.

i do not know how there could be a mismatch. the PDB file is the same
that was generated when the DSM .sys file was built.

kindly note that these errors occur only when the target is WS8 and not on WS3.

any help will be appreciated,

Aaron

{ Arystor Limited http://www.arystor.com/ }_

this is not an exact answer for your problem but rather a bypass

if you are sure that this pdb is real and good but windbg is still
complaining of mismatch you can forceload it through

.symopt + 0x40

the LOAD_ANYTHING_FLAG

regards

raj_r

On 11/10/08, xxxxx@gmail.com wrote:
> good afternoon:
>
> i am trying to debug a MultiPath (MP) I/O (MPIO) Device Specific Module (DSM)
> using WinDBG. i was quite successful when using Windows Server 2003 (WS3).
> however, when i moved the target to Windows Server 2008 (WS8), i ran into
> problems: i cannot enable tracing and i cannot do source-level debugging
> at all because the symbols in the DSM cannot be found.
>
> SETUP
> - the target and debug machine are connected using a serial connection.
>
> - i enable debug in target’s WS8 boot options.
>
> - WinDBG has been setup with the correct symbol path:
> SRVC:\Symbols\WebSymbolshttp://msdl.microsoft.com/download/symbols;C:\Symbols\DsmSymbols
>
> - the source and image paths have also been setup correctly.
>
> - after WinDBG is connected to the target, i enter these values for tracing:
> - ed nt!Kd_DEFAULT_MASK 0xFFFFFFFF
> - ed nt!Kd_IHVDRIVER_MASK 0xFFFFFFFF
> - ed nt!Kd_MSDSM_MASK 0xFFFFFFFF
>
> - however, when i access the MP disks, i do not see any trace messages at all.
> note that my DSM is called ARDSM and uses DbgPrintEx() with Component ID
> IHVDRIVER for WinDBG tracing. even though i have set the correct mask to
> enable tracing, no trace messages are seen.
>
> ERRORS
> - firstly, even when the multipathed volume is accessed, no trace messages
> are seen at all on the WinDBG screen.
>
> - secondly, when i attempt to set a breakpoint in ARDSM, i get an error.
> the relevant portion of the log is given below.
>
> 1: kd> !sym noisy
> noisy mode - symbol prompts on
>
> […]
>
>
>
> […]
>
> 1: kd> bp ardsm!DsmInterpretError
> Loading symbols for 82926000 ardsm.sys ->
> SYMSRV: C:\Symbols\WebSymbols\ardsm.pdb\9810D7AD78B24E1D9702C3D0D755A7121\ardsm.pdb not found
> SYMSRV: http://msdl.microsoft.com/download/symbols/ardsm.pdb/9810D7AD78B24E1D9702C3D0D755A7121/ardsm.pdb not found
> DBGHELP: C:\Symbols\DsmSymbols\ardsm.pdb - mismatched pdb
> DBGHELP: C:\Symbols\DsmSymbols\sys\ardsm.pdb - file not found
> DBGHELP: C:\Symbols\DsmSymbols\symbols\sys\ardsm.pdb - file not found
> DBGHELP: c:\mpio_dev\hardsm\development\mpio\mpiodsm2008\arystor\ardsm\objfre_wlh_x86\i386\ardsm.pdb - file not found
> DBGHELP: Couldn’t load mismatched pdb for ardsm.sys
> ardsm.sys
> *** ERROR: Module load completed but symbols could not be loaded for ardsm.sys
> DBGHELP: ardsm - no symbols loaded
> Couldn’t resolve error at ‘ardsm!DsmInterpretError’
>
> note that, even though the correct PDB file is available in
> C:\Symbols\DsmSymbols, i get the error: mismatched PDB.
>
> i do not know how there could be a mismatch. the PDB file is the same
> that was generated when the DSM .sys file was built.
>
> kindly note that these errors occur only when the target is WS8 and not on WS3.
>
> any help will be appreciated,
>
> Aaron
> –
> { Arystor Limited http://www.arystor.com/ }
>
>
>
> —
> You are currently subscribed to windbg as: xxxxx@gmail.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

hello:

using the hint on
http://stackoverflow.com/questions/134866/windbg-dr-watson-minidump-requires-pdbdll-originally-built-for-installed-version

i used the ChkMatch utility to confirm that there was no mismatch between the .sys and .pdb.
http://www.debuginfo.com/tools/chkmatch.html

ChkMatch reports that the two - the SYS and PDB - are matched.
so, i do not know why there is a mismatch. in fact, the PDB is
generated when i do the build!

anyway, i will try setting the LOAD_ANYTHING_FLAG as suggested by
raj_r and let you know what i find…

Aaron

hello:

i tried out Raj’s suggestion and enabled SYMOPT_LOAD_ANYTHING. however, that
did not help at all. i still get mismatched PDB messages and i cannot set a
breakpoint in my code. however, when i switched over to Windows Server 2003
and everything from Tracing to Setting Breakpoints to Single Stepping works
fine.

kindly note that i am using the same debugger executable and setup for
debugging WS8 and WS3.

this is what i get now, after specifying .symopt+0x40.

Opened log file ‘log.txt’
DBGHELP: Symbol Search Path: SRV*C:\Symbols\WebSymbols*http://msdl.microsoft.com/download/symbols;C:\Symbols\DsmSymbols
0: kd> .reload
Connected to Windows Server 2008 6001 x86 compatible target, ptr64 FALSE
DBGHELP: nt - public symbols
C:\Symbols\WebSymbols\ntkrpamp.pdb\E3AF30C94A334570818A670674C7F9602\ntkrpamp.pdb
Loading Kernel Symbols

Loading User Symbols

Loading unloaded module list
.
0: kd> bp ardsm!DsmInterpretError
SYMSRV: C:\Symbols\WebSymbols\ardsm.pdb\9810D7AD78B24E1D9702C3D0D755A7121\ardsm.pdb not found
SYMSRV: http://msdl.microsoft.com/download/symbols/ardsm.pdb/9810D7AD78B24E1D9702C3D0D755A7121/ardsm.pdb not found
DBGHELP: C:\Symbols\DsmSymbols\ardsm.pdb - mismatched pdb
DBGHELP: C:\Symbols\DsmSymbols\sys\ardsm.pdb - file not found
DBGHELP: C:\Symbols\DsmSymbols\symbols\sys\ardsm.pdb - file not found
DBGHELP: c:\mpio_dev\hardsm\development\mpio\mpiodsm2008\arystor\ardsm\objfre_wlh_x86\i386\ardsm.pdb - file not found
DBGHELP: Loaded mismatched pdb for ardsm.sys
DBGENG: ardsm.sys has mismatched symbols - type “.hh dbgerr003” for details
DBGHELP: ardsm - private symbols & lines
C:\Symbols\DsmSymbols\ardsm.pdb - unmatched
0: kd> g

Aaron