Friday, August 21, 2009 11:17 AM
arvindsh
Quick Tip: vfbasics!_AVRF_EXCEPTION_LOG_ENTRY symbol not resolved?
I was debugging some issues with the help of Application Verifier and WinDbg. Since I was onsite I did not have any access to Microsoft’s private symbol servers, so I was using the public symbol server (http://msdl.microsoft.com/download/symbols). On executing the !avrf extension command in WinDbg I was presented with the following error message in WinDbg:
*** Your debugger is not using the correct symbols ***
*** ***
*** In order for this command to work properly, your symbol path ***
*** must point to .pdb files that have full type information. ***
*** ***
*** Certain .pdb files (such as the public OS symbols) do not ***
*** contain the required information. Contact the group that ***
*** provided you with these symbols if you need this command to ***
*** work. ***
*** ***
*** Type referenced: vfbasics!_AVRF_EXCEPTION_LOG_ENTRY ***
It turns out that my WinDbg symbol path was as follows, and due to it pointing just to the public symbol server it was loading public symbols for vfbasics.dll:
0:001> .sympath
Symbol search path is: SRV*c:\localsymbols*http://msdl.microsoft.com/download/symbols
Expanded Symbol search path is: srv*c:\localsymbols*http://msdl.microsoft.com/download/symbols
0:001> lml
start end module name
00000000`76dc0000 00000000`76f68000 ntdll (pdb symbols) c:\localsymbols\ntdll.pdb\FDAD9EE7D6E44F4F9672ECB401A802192\ntdll.pdb
000007fe`f0e50000 000007fe`f0ebe000 verifier (pdb symbols) c:\localsymbols\verifier.pdb\43FCE2D63C4544F9B1C67110EB3406951\verifier.pdb
000007fe`f1660000 000007fe`f1693000 vrfcore (pdb symbols) c:\localsymbols\vrfcore.pdb\751D23CCD6504794AF2F18C1E547FE371\vrfcore.pdb
000007fe`f28e0000 000007fe`f292a000 vfbasics (pdb symbols) c:\localsymbols\vfbasics.pdb\01ABCDFEFF9F4602A7F055801457A7D61\vfbasics.pdb
To resolve the issue, I explicitly pre-pended the path to private symbols for vfbasics (which is c:\windows\system32 or in general %WINDIR%\System32:
.sympath c:\windows\system32*SRV*c:\localsymbols*http://msdl.microsoft.com/download/symbols
.reload
ld vfbasics
0:001> lml
start end module name
00000000`76dc0000 00000000`76f68000 ntdll (export symbols) C:\Windows\SYSTEM32\ntdll.dll
000007fe`f28e0000 000007fe`f292a000 vfbasics (private pdb symbols) C:\Windows\SYSTEM32\vfbasics.pdb
Then !avrf works just fine!
If you liked this post, please do rate it and try to leave some comments if you can!