Yes, the documentation is wrong (at least for WinDbg 6.2.9200.16384).
You can prove it by entering the mentioned command:
0:000> .sympath srv*
Symbol search path is: srv*
Expanded Symbol search path is: cache*;SRV*http://msdl.microsoft.com/download/symbols
So, as we can see from the output of WinDbg, the expanded symbol path (which will actually be used) contains cache*
which indicates that symbols will be cached.
You found this in the documentation for WinDbg, which might not be the correct place to define the behavior, since WinDbg does not load the symbols itself. Instead it uses the dbghelp.dll and the behavior of that DLL might change without the WinDbg help being updated.
The symbol path syntax is really hard to get used to and the documentation is spread all over the place. All the magic with expansion and default directories makes it even worse.
The flow is more or less:
- Split the symbol path at ";" into array elements.
- For each element in elements:
- Switch according to the beginning of the element:
- "cache*":
- Determine cache path:
- If there's a path after the asterisk use that path.
Otherwise use the default cache path.
- Cache symbol from all the following elements in this path.
- "symsrv*":
- Split element at "*" into (mostly path) components.
- The first component is the symbol server DLL to use.
- The next components are paths. For each path:
- Look for symbol in path. The path can be one of
- Local directory.
- UNC.
- HTTP or HTTPS URL - has to be the last path.
- Empty string - means the default symbol store. (See SymSetHomeDirectory and
!homedir
.)
- If found:
- Copy symbol to all the previous paths in this element.
- Finish symbol search
- "srv*":
- Same as "symsrv*symsrv.dll*".
- Otherwise:
- Treat the element as path and look for the symbol there. (Without the hash etc. like done by symsrv.dll.)