Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Microsoft Symbol Server - Deleting Old content

We want to be able to delete symbol server content as we do the physical build area deletes, the symstore del command works of the transaction ID. This is not known.

How to extract the transaction ID based on the binary or PDB ? Is there a tool already around to delete symstore info based on the binary or PDB path ?

More context - We have a number of older builds with both release and debug binaries and PDBs. These we all added to our symbol server some time ago. Thus for every old build there will be a bunch of files stored for "release" and "Debug", both having the same version number. The stored Version is typically "Build 7.0.0.200 (DEBUG)" and "Build 7.0.0.200 (Release)" The binary will have the version stamp and typically we would want to delete both Release and Delete at the same time.

like image 733
Greg B Roberts Avatar asked Oct 29 '22 01:10

Greg B Roberts


1 Answers

Update - synstore query mode seems to be broken or doco not updated. MS Premier support does not support symstore questions. The solution which worked for me:

Steps

  • Run symchk.exe use verbose option /v and pipe output to a file
  • Find the .pdb reference for the given exe or dll
  • Then in the symbol store pdb dir open the refs.ptr
  • Then inside the file the first number is the transaction id 0000073271,file,"\path_replaced\Symbols\Products\Drivers\ASCII\2.00.10.000\ASCII.pdb",pri,,Y,,
  • Now you have the transaction id you can delete symbols using symstore (phew)

Shame MS made this so hard to maintain.

like image 172
Greg B Roberts Avatar answered Dec 28 '22 09:12

Greg B Roberts