title: _NT_SYMBOL_PATH format
body: <p>I'm trying to use windbg more, and I keep having problems with the symbol cache. It isn't clear to me what the format of the string is supposed to be.</p>
  
  <p>I have a few requirements:</p>
  
  <ul>
  <li>use Microsoft's server <a href="http://msdl.microsoft.com/download/symbols" rel="noreferrer">http://msdl.microsoft.com/download/symbols</a></li>
  <li>use symbols from our software that are archived at \\foo\Build1234</li>
  <li>use a local cache at c:\dev\symbols </li>
  </ul>
  
  <p>The archive of symbols from our distributed build at \\foo\Build1234 are not organized as a symbol server. If I understand it correctly, I need to use the cache keyword.</p>
  
  <p>Given these requirements, does this look like a properly formatted srvpath:</p>
  
  <pre><code>cache*\\foo\Build1234;srv*c:\dev\symbols*http://msdl.microsoft.com/download/symbols
  </code></pre>
  
  <p><strong>Edit:</strong></p>
  
  <p>I just started reading Advanced Windows Debugging and I had misinterpreted how the cache keyword works. I thought it was a way of telling the debugger that the folder is just a folder of files and not a symbol server. After Michael left his comment, I reread the section and see that it indeed works as Michael described.</p>
  
  <p>Now I'm confused by when you use a ; or a * to separate paths/URLs. And when you need the srv* prefix. In the online help for windbg they give this example:</p>
  
  <pre><code>\\someshare\that\cachestar\ignores;srv*c:\mysymbols*http://msdl.microsoft.com/download/symbols;cache*c:\mysymbols;\\anothershare\that\gets\cached
  </code></pre>
  
  <p>The symbols from \\someshare are not cached, symbols from Microsoft are cached in c:\mysymbols, and c:\mysymbols is used as the cache for any other paths to the right of the cache* directive.</p>
  
  <p>The occasional use of srv* is confusing me -- I don't understand why the first and last paths aren't prefixed with srv*.</p>
  
  <p><strong>Edit 2:</strong></p>
  
  <p>This is slowly starting to make sense to me. The srv directive is used for symbol servers, and not for normal symbol directories. So, I believe the answer to my original question is this:</p>
  
  <pre><code>\\foo\Build1234;cache*c:\dev\symbols;srv*http://msdl.microsoft.com/download/symbols
  </code></pre>