views:

333

answers:

1

The MS source server technology uses an initialization file named srcsrv.ini. One of the values identifies the source server location(s), e.g.,

MYSERVER=\\machine\foobar

The docs leave much unanswered about this value. To start with, I haven't been able to find the significance of the value name, i.e., what's on the left side--and I don't see it used anywhere else. Hewardt & Pravat in Advanced Windows Debugging say "The left side ... represents the project name", but that doesn't seem to jibe with MS's "MYSERVER" example.

What is the significance of the left side? Where else is it used? Does the value reference a server or a project, and is there one per server, or one per project?

+1  A: 

For anyone looking into this in the future, I received the following information from MS:

The name on the left side is the logical name of a version control server. The name is also used in the source-indexed symbol files (pdb). For example, a symbol file may contain this string value:

  MYSERVER=mymachine1.sys-mygroup.corp.microsoft.com:2003

and the source files are referenced like this in pdb:

  *MYSERVER*/base/myfolder/mycode.c

When SrcSrv starts, it looks at Srcsrv.ini for values; these values override the information contained in the .pdb file:

  "MYSERVER=mymachine.sys-mygroup.corp.microsoft.com:1666" overrides
  "MYSERVER=mymachine1.sys-mygroup.corp.microsoft.com:2003"

This enables users to configure a debugger to use an alternative source control server at debug time. The info is documented at http://msdn.microsoft.com/en-us/library/ms680641.aspx.

So, it is a logical name for a source server, and its value can be changed at debug time to reference a different server than the one originally used when the PDBs were created.

chrisd
What you describe is documented in the srcsrv.doc file that comes as part of Debugging Tools for Windows package. I.e., it comes with windbg.
JeffJ