They were built just now doing a full clean compile, so why the mismatch? How would one go about curing this?
I found a few threads on here but nothing I understood or that drew any logical conclusion. If I have missed a thread or my knowledge is lacking I apologise in advance and will happily read and digest any links that get posted.
wrote in message news:xxxxx@ntdev… > They were built just now doing a full clean compile, so why the mismatch? > How would one go about curing this?
Every time you build it produces a unique binary and PDB pair, even if you never changed the source code. Note that the GUIDs don’t match, so the SYS file running on the target isn’t the exact last copy that you built.
If you haven’t changed anything, you can try forcing WinDBG to load the mismatched PDB anyway:
wrote in message news:xxxxx@ntdev… > I am in windbg, have the kernel symbols, driver symbols, image and source > paths all set correctly. > > !sym noisy > .reload tells me that I have a mismatched pbd file for the driver > > !itoldyouso MyDriver c:\buildpath\MyDriver.pdb > > tells me > > <br>> MyDriver.sys<br>> Timestamp: 4AFDEEAB<br>> SizeOfImage: F000<br>> pdb: c:\buildpath\Prototype\i386\MyDriver.pdb<br>> pdb sig: A3725183-59AB-4C7A-9435-1CA880369129<br>> age: 45<br>><br>> MyDriver.pdb<br>> pdb sig: 8AA9519C-198F-427D-B532-10CAC23B0021<br>> age: 1<br>><br>> sig MISMATCH: MyDriver.pdb and MyDriver.sys<br>> > > They were built just now doing a full clean compile, so why the mismatch? > How would one go about curing this? > > I found a few threads on here but nothing I understood or that drew any > logical conclusion. If I have missed a thread or my knowledge is lacking I > apologise in advance and will happily read and digest any links that get > posted. >
Did you check whether target platform architecture matches your symbols?
For example if your target version is x64 you need to use x64 symbols.
You can check target version with “vertarget”.
They were built just now doing a full clean compile, so why the
mismatch? How would one go about curing this?
I found a few threads on here but nothing I understood or that drew any
logical conclusion. If I have missed a thread or my knowledge is lacking
I apologise in advance and will happily read and digest any links that
get posted.
If you sign the driver binary that will change the timestamp and cause
mismatch errors as well. The procedure Scott mentioned should work in this
case as well.
You may need to use the WinDbg SYMOPT_LOAD_ANYTHING option to coax WinDbg
into using the mismatched PDB.
Using .kdfiles to load your latest driver is also a good idea if you have
made changes.
From: “Scott Noone” Sent: Friday, August 13, 2010 10:01 AM Newsgroups: ntdev To: “Windows System Software Devs Interest List” Subject: Re:[ntdev] Mismatched pdb
> wrote in message news:xxxxx@ntdev… >> They were built just now doing a full clean compile, so why the mismatch? >> How would one go about curing this? > > Every time you build it produces a unique binary and PDB pair, even if you > never changed the source code. Note that the GUIDs don’t match, so the SYS > file running on the target isn’t the exact last copy that you built. > > If you haven’t changed anything, you can try forcing WinDBG to load the > mismatched PDB anyway: > > .reload /i mydriver.sys > > -scott > > – > Scott Noone > Consulting Associate > OSR Open Systems Resources, Inc. > http://www.osronline.com > > > > wrote in message news:xxxxx@ntdev… >> I am in windbg, have the kernel symbols, driver symbols, image and source >> paths all set correctly. >> >> !sym noisy >> .reload tells me that I have a mismatched pbd file for the driver >> >> !itoldyouso MyDriver c:\buildpath\MyDriver.pdb >> >> tells me >> >> <br>>> MyDriver.sys<br>>> Timestamp: 4AFDEEAB<br>>> SizeOfImage: F000<br>>> pdb: c:\buildpath\Prototype\i386\MyDriver.pdb<br>>> pdb sig: A3725183-59AB-4C7A-9435-1CA880369129<br>>> age: 45<br>>><br>>> MyDriver.pdb<br>>> pdb sig: 8AA9519C-198F-427D-B532-10CAC23B0021<br>>> age: 1<br>>><br>>> sig MISMATCH: MyDriver.pdb and MyDriver.sys<br>>> >> >> They were built just now doing a full clean compile, so why the mismatch? >> How would one go about curing this? >> >> I found a few threads on here but nothing I understood or that drew any >> logical conclusion. If I have missed a thread or my knowledge is lacking >> I apologise in advance and will happily read and digest any links that >> get posted. >> > > — > NTDEV is sponsored by OSR > > For our schedule of WDF, WDM, debugging and other seminars visit: > http://www.osr.com/seminars > > To unsubscribe, visit the List Server section of OSR Online at > http://www.osronline.com/page.cfm?name=ListServer
If you have symbols for your driver loaded into Windbg and you run build, the *.pdb will not be generated. You need to ‘.reload /u yourdriver’ before doing the build to regenerate the *.pdb file. Then use .kdfiles to load the new version of your driver.
“Thomas F. Divine” wrote in message news:xxxxx@ntdev… > If you sign the driver binary that will change the timestamp and cause > mismatch errors as well. The procedure Scott mentioned should work in this > case as well.
Signing won’t cause mismatch. PDB matching is specially designed to allow modifications on a binary. AFAIK the match is done by some GUID or random string that linker embeds in both PDB and exe. It is not a checksum of the exe.
Regards, – pa
> You may need to use the WinDbg SYMOPT_LOAD_ANYTHING option to coax WinDbg > into using the mismatched PDB. > > Using .kdfiles to load your latest driver is also a good idea if you have > made changes. > > Probably should move this to the WinDbg list. > > Thomas F. Divine > http://www.pcausa.com > > > -------------------------------------------------- > From: “Scott Noone” > Sent: Friday, August 13, 2010 10:01 AM > Newsgroups: ntdev > To: “Windows System Software Devs Interest List” > Subject: Re:[ntdev] Mismatched pdb > >> wrote in message news:xxxxx@ntdev… >>> They were built just now doing a full clean compile, so why the >>> mismatch? How would one go about curing this? >> >> Every time you build it produces a unique binary and PDB pair, even if >> you never changed the source code. Note that the GUIDs don’t match, so >> the SYS file running on the target isn’t the exact last copy that you >> built. >> >> If you haven’t changed anything, you can try forcing WinDBG to load the >> mismatched PDB anyway: >> >> .reload /i mydriver.sys >> >> -scott >> >> – >> Scott Noone >> Consulting Associate >> OSR Open Systems Resources, Inc. >> http://www.osronline.com >> >> >> >> wrote in message news:xxxxx@ntdev… >>> I am in windbg, have the kernel symbols, driver symbols, image and >>> source paths all set correctly. >>> >>> !sym noisy >>> .reload tells me that I have a mismatched pbd file for the driver >>> >>> !itoldyouso MyDriver c:\buildpath\MyDriver.pdb >>> >>> tells me >>> >>> <br>>>> MyDriver.sys<br>>>> Timestamp: 4AFDEEAB<br>>>> SizeOfImage: F000<br>>>> pdb: c:\buildpath\Prototype\i386\MyDriver.pdb<br>>>> pdb sig: A3725183-59AB-4C7A-9435-1CA880369129<br>>>> age: 45<br>>>><br>>>> MyDriver.pdb<br>>>> pdb sig: 8AA9519C-198F-427D-B532-10CAC23B0021<br>>>> age: 1<br>>>><br>>>> sig MISMATCH: MyDriver.pdb and MyDriver.sys<br>>>> >>> >>> They were built just now doing a full clean compile, so why the >>> mismatch? How would one go about curing this? >>> >>> I found a few threads on here but nothing I understood or that drew any >>> logical conclusion. If I have missed a thread or my knowledge is lacking >>> I apologise in advance and will happily read and digest any links that >>> get posted. >>> >> >> — >> NTDEV is sponsored by OSR >> >> For our schedule of WDF, WDM, debugging and other seminars visit: >> http://www.osr.com/seminars >> >> To unsubscribe, visit the List Server section of OSR Online at >> http://www.osronline.com/page.cfm?name=ListServer > >
You can see the GUID by issuing ‘DUMPBIN /PDBPATH .’
mm
-----Original Message----- From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Pavel A. Sent: Friday, August 13, 2010 12:43 PM To: Windows System Software Devs Interest List Subject: Re:[ntdev] Re:Mismatched pdb
“Thomas F. Divine” wrote in message news:xxxxx@ntdev… > If you sign the driver binary that will change the timestamp and cause > mismatch errors as well. The procedure Scott mentioned should work in > this case as well.
Signing won’t cause mismatch. PDB matching is specially designed to allow modifications on a binary. AFAIK the match is done by some GUID or random string that linker embeds in both PDB and exe. It is not a checksum of the exe.
Regards, – pa
> You may need to use the WinDbg SYMOPT_LOAD_ANYTHING option to coax > WinDbg into using the mismatched PDB. > > Using .kdfiles to load your latest driver is also a good idea if you > have made changes. > > Probably should move this to the WinDbg list. > > Thomas F. Divine > http://www.pcausa.com > > > -------------------------------------------------- > From: “Scott Noone” > Sent: Friday, August 13, 2010 10:01 AM > Newsgroups: ntdev > To: “Windows System Software Devs Interest List” > Subject: Re:[ntdev] Mismatched pdb > >> wrote in message news:xxxxx@ntdev… >>> They were built just now doing a full clean compile, so why the >>> mismatch? How would one go about curing this? >> >> Every time you build it produces a unique binary and PDB pair, even >> if you never changed the source code. Note that the GUIDs don’t >> match, so the SYS file running on the target isn’t the exact last >> copy that you built. >> >> If you haven’t changed anything, you can try forcing WinDBG to load >> the mismatched PDB anyway: >> >> .reload /i mydriver.sys >> >> -scott >> >> – >> Scott Noone >> Consulting Associate >> OSR Open Systems Resources, Inc. >> http://www.osronline.com >> >> >> >> wrote in message news:xxxxx@ntdev… >>> I am in windbg, have the kernel symbols, driver symbols, image and >>> source paths all set correctly. >>> >>> !sym noisy >>> .reload tells me that I have a mismatched pbd file for the driver >>> >>> !itoldyouso MyDriver c:\buildpath\MyDriver.pdb >>> >>> tells me >>> >>> <br>>>> MyDriver.sys<br>>>> Timestamp: 4AFDEEAB<br>>>> SizeOfImage: F000<br>>>> pdb: c:\buildpath\Prototype\i386\MyDriver.pdb<br>>>> pdb sig: A3725183-59AB-4C7A-9435-1CA880369129<br>>>> age: 45<br>>>><br>>>> MyDriver.pdb<br>>>> pdb sig: 8AA9519C-198F-427D-B532-10CAC23B0021<br>>>> age: 1<br>>>><br>>>> sig MISMATCH: MyDriver.pdb and MyDriver.sys >>> >>> They were built just now doing a full clean compile, so why the >>> mismatch? How would one go about curing this? >>> >>> I found a few threads on here but nothing I understood or that drew >>> any logical conclusion. If I have missed a thread or my knowledge is >>> lacking I apologise in advance and will happily read and digest any >>> links that get posted. >>> >> >> — >> NTDEV is sponsored by OSR >> >> For our schedule of WDF, WDM, debugging and other seminars visit: >> http://www.osr.com/seminars >> >> To unsubscribe, visit the List Server section of OSR Online at >> http://www.osronline.com/page.cfm?name=ListServer > >