How operate and update a symbol server for Microsoft Windows on a closed network?
Background
When working on a closed network (i.e. no internet connection), Microsoft's public symbol server isn't available during my debugging sessions. I'm most interested in the debug symbols for the Windows system libraries and 开发者_开发知识库the C-runtime libraries (e.g. kernel32.dll, mscvrt100.dll).
I've created a debug symbol server on the closed network and "seeded" it with the debug symbol packages from here. The problem is that as Windows updates, some binaries need to get updated symbols. I don't know of any place where these are "neatly" bundled for download. The only option I'm aware of is to use symchk to download symbols for everything in the Windows/system32 directory on the machine that will be used for debugging which is tedious and time consuming.
Question
How do you operate and update a symbol server for Microsoft Windows on a closed network? Is there any way to "mirror" say, all of the Windows debug symbols such that you get the symbols for not just the releases and service packs but also the hotfixes and rollups?
Another option to populate your 'closed network symbol' store is to use symchk this way :
go on the target machine (the one you want the symbols). Install windbg and run the command
symchk /r c:\windows\*.dll /om c:\symbols.txt
on a machine connected to the internet, retreive the symbols.txt file generated and use the same symchk :
symchk /im c:\temp\symbols.txt
In the first step, symchk will generate a text file with the signatures of the binaries of the target machine. In the second step, this list is read and symchk actually retreives the pdb files from the Microsoft Symbol Server.
Microsoft used to provide symbol packages back in the previous century. Those days are over, an Internet connection is assumed.
You'll need to spike the symbol cache of a machine outside of that closet. Write a little test program that uses as many similar DLLs as possible and debug it. Then copy the symbol cache contents to the secured machine, somehow. Although the odds that you'll get a exact DLL vs PDB version match are not that great, given that this secured machine probably doesn't get Windows updates either.
精彩评论