Sysprogs forums › Forums › VisualDDK/VirtualKD discussion › VisualDDK can’t load PDB files
- This topic has 6 replies, 5 voices, and was last updated 14 years, 1 month ago by
Lissa345.
-
AuthorPosts
-
May 5, 2010 at 22:01 #189
marcin512
ParticipantHi
I’m facing an error. Basically when I’m attaching to kernel VisualDDK always pops up with a message:
Can’t load “C:Symbol_pathpdb_name.pdb”: Class not registered. It displays that message box for every
loaded PDB file (there are a lot of them…). Does anybody know why that happens? I’m using Win7 32bit as
a host and WinXP SP3 under VMWare as a guest OS, VS 2010 Ultimate.EDIT: I think the problem is that I’m trying to load PDB files prepared for different OS. Does VisualDDK
supports that (debugging heterogenous OSes)? ProcMon shows that HKCRCLSID misses a lot of required
classes…Thanks for your help.
Cheers,
MarcinMay 6, 2010 at 18:30 #1428marcin512
ParticipantOK, I managed to get rid of this problem.
I had to locate code in DLL that invoked MessageBoxW and patch it with stack adjustmnent instructions and few nops.
The msgbos is gone and pds’a are loaded.
IMO it’s a bug in pdb loader (are there two different methods of pdb loading?).August 8, 2010 at 15:19 #1429NeWbY
ParticipantCould you post your patched version maybe? Or send an url to it in PM to me?
I’ve got the same problem, and it’s kind of annoying having to click OK the whole time when it tries to load the PDBs >_>September 9, 2010 at 20:02 #1430jospalau
ParticipantI am facing the same problem and I solved in a different way even though marcing512 solution is pretty nite.
It turns out that when a .pdb is loaded, devenv or Visual DDK library looks for a class of msdia80 or msdia90 and if you haven’t installed Visual Studio 2005 or Visual 2008 doesn’t find it because the library is not registered, so it works simply by copying and registering de library:-= PepeElevado@JPALAU-DESKTOP2 –> C:Windowssystem32 =- $ copy “\jpalau-laptopc$Program FilesMicrosoft Visual Studio 9.0Common7PackagesDebuggermsdia90.dll”
1 file(s) copied.-= PepeElevado@JPALAU-DESKTOP2 –> C:Windowssystem32 =- $ regsvr32 msdia90.dll
Process Monitor helped me to find the registry CLSIDs of the classes.
I haven’t used this library and I don’t know why it is searched, I think Visual Studio 2010 comes with msdia100.dll
September 11, 2010 at 10:46 #1431NeWbY
ParticipantThat seems to work, jospalau!
Thanks for posting your solution 🙂
September 22, 2010 at 04:20 #1432toadster
ParticipantI was getting the following error when I copied the msdia90.dll into the system32 directory:
“The module ‘msdia90.dll’ failed to load. Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files. The specified module could not be found.”I then tried registering the dll while it was on the desktop and it worked.
September 2, 2011 at 09:20 #1433Lissa345
ParticipantYeah,this works good. Finally I could resolve my problem:)This is a good solution to the problem you suggested above:)
-
AuthorPosts
- You must be logged in to reply to this topic.