Merging Symbol Servers

Conservation is always good so I’m going to recycle some keystrokes. Today I got an email where a company had two symbol servers set up. One was no longer used but held symbols for previously released projects. Since PDB files are as important as source code, they wanted to know if there was a way to merge the symbol servers together.

Since symbol servers are a file system used as a database, with a storage scheme of ServerShareFile.PDBGUIDFile.PDB, one could drag the files in Explorer from one symbol server to another. That’s not ideal because if you’re actively managing your symbol server to prune dead symbols, those added through drag and drop are stuck there forever. To avoid the dead symbols problem, you just need to run the same command that got the build into the symbol server to begin with: SYMSTORE.EXE, which is part of the Debugging Tools for Windows (AKA WinDBG) you can install as part of the Windows SDK.

  1. symstore add /r /f RetiringShare /s CombinedShare /t “Merging Symbol Servers”

This case was simple, but what if you had a more complicated situation where the retiring symbol server was correctly used and had daily builds going back ages, but you only wanted just the externally released product builds? Let’s make it more interesting in that you wanted the ability to prune the individual builds down the road. Say for example, the alpha release or daily builds more than two months old? (I’m assuming you’ve read the documentation on symbol servers and set one up. If you haven’t here’s where to start: http://msdn.microsoft.com/en-us/library/windows/desktop/ms680693(v=vs.85).aspx)

Fortunately, merging symbol servers and keeping all the add data such as version, product, and allowing for individual builds is doable, but would have to be scripted. Looking at the problem a little bit, here’s the basic algorithm you’d have to follow.

  1. Open the RetiringShare
John Robbins

Recent Posts

8-Step AWS to Microsoft Azure Migration Strategy

Microsoft Azure and Amazon Web Services (AWS) are two of the most popular cloud platforms.…

4 days ago

How to Navigate Azure Governance

 Cloud management is difficult to do manually, especially if you work with multiple cloud…

2 weeks ago

Why Azure’s Scalability is Your Key to Business Growth & Efficiency

Azure’s scalable infrastructure is often cited as one of the primary reasons why it's the…

4 weeks ago

Unlocking the Power of AI in your Software Development Life Cycle (SDLC)

https://www.youtube.com/watch?v=wDzCN0d8SeA Watch our "Unlocking the Power of AI in your Software Development Life Cycle (SDLC)"…

1 month ago

The Role of FinOps in Accelerating Business Innovation

FinOps is a strategic approach to managing cloud costs. It combines financial management best practices…

1 month ago

Azure Kubernetes Security Best Practices

Using Kubernetes with Azure combines the power of Kubernetes container orchestration and the cloud capabilities…

2 months ago