PRB: Can't Find Symbols in Modules When Exe's Have Same BasenameID: Q170116
|
WinDbg or KD can't locate symbols in modules when multiple executable files
have matching basenames differing on extension only.
Debugger can't locate symbols between loaded driver modules with same base
name. For example, "S3" derived from S3.Sys and S3.Dll.
The dot operator is already used by Windbg and MSDev and cannot be overloaded unambiguously. This cannot be fixed. So, specifying the extension doesn't work. For example, "x s3.dll!*".
When you build software components, do not use the same file name with different extensions. Change the basename so that it is different. For exmaple, with a video drivers you could name them "S3mini.sys and S3Disp.dll" instead of S3.SYS and S3.DLL.
Developers keep inquiring why the debuggers cannot distinguish between
Foo.sys and Foo.dll. This arises most often with video driver developers.
For example, in WinDBG the only way to do it currently is to unload the one
you don't want and make sure the one you do want is the only one loaded:
kd> !reload /u S3
kd> !reload /u S3
kd> !reload S3.dll
kd> lm
Keywords : kbdisplay kbprg kbtool NTDDKDebug NTDDKDisplay ntddkvideo
Version : 3.5 3.51 4.0
Platform : NT WINDOWS
Issue type : kbprb
Last Reviewed: March 4, 1999