Feature request: Symbol Server & Source Server support?

As mentioned here, it would be nice to have symbol server & source server support. I've got a different reason, though.

Firstly, it could occasionally be handy to see info from the BCL reference sources, which would require both symbol server (to get the PDB files) and source server (to get the source files) support. I can't see that being massively useful, though, as I can't optimise those functions, so all I really care about is whether or not the function itself is expensive.

What I would find useful would be to use our internal source server set-up to retrieve source files from subversion.

We've got our automated build split into several packages, which each generate binaries (& symbols) that dependant packages can fetch. In the end we have a build that fetches all the binaries and builds an installer (and a separate one for the symbols). All the symbol files that are generated are annotated with information about the svn path & revision of the source files (using SourceServerSharp).

That all means that we can be working on one of the higher level projects (e.g. the application GUI) and still debug into the low-level components. Visual Studio uses the info in the pdb files to transparently fetch the correct source files from subversion. Note that this is actually a lot better than using svn myself, as it knows what svn revision matches the binary I'm using (technically the pdb).

If ANTS Profiler could do that, it would be very cool. I've no idea if the mechanism used to retrieve the sources is available in a MS library or not, though. If not, I suspect it might not be worth the bother re-implementing it, but if it is then it would be quite handy.

Comments

  • Actually, I just looked, and the necessary Source Server functionality should be in DbgHelp.dll as SymGetSourceFile. See MSDN.
  • Thanks for your post. This has been suggested a few times before, I don't see a reason why we couldn't implement it. At them moment you have to put the PDB in the same folder as the assembly. However, it may help to know that you can have a "global" PDB folder for ANTS Profiler. It's not as good as a symbols server in that it wouldn't support multiple versions of the same PDB, but it's proved to be useful in the past.
    To create a global symbol store for ANTS Profiler, create a subfolder called "Symbols" inside the %SYSTEMROOT% folder. Underneath this, create two more subfolders called "dll" and "exe". The dll folder can be used to store your class library symbols, while the exe folder is used to store the PDB files corresponding to executable assemblies that you may want to profile.

    For instance, you can copy your class library debugging symbols to
    c:\windows\symbols\dll
    ...and you can copy your executable symbols to...
    c:\windows\symbols\exe
Sign In or Register to comment.