How to see what symbols are hosted on a Symbol Server? - nuget

I would like to inspect what symbols are available on a symbol server. I expect that a symbol server hosts more or less a collection of .pdb files for various applications.
Tools like Visual Studio or WinDbg must know how to communicate with symbol servers hosted online. Here are URLs of some symbol servers found in Google, the first two are probably the default ones used by Visual Studio 2022:
https://symbols.nuget.org/download/symbols
https://msdl.microsoft.com/download/symbols
http://referencesource.microsoft.com/symbols
https://nuget.smbsrc.net/
I expect that all of them follow some common standard, but when opened in a browser, none of them seems to offer a GUI or even a hint how to interact with them.
Is there some sort of standard REST API or a documented protocol that would allow seeing what's hosted on a symbol server?

Related

Is it possible to limit/disallow/forbid certain extensions (for teams, organizations, etc.)?

In our team we would like to use VS Code widely. But our security guard is worried people could install malicious extensions. I know Microsoft scans extensions before they add them to the marketplace. However there could still be some scripts or commands to executed in there, that might be dangerous or send data somewhere else. Currently we block the marketplace port (8080). So no extention can be installed through the marketplace yet.
We would like to provide our Devs with many extensions, but also keep the security part in mind.
Is it possible to "disallow" certain extentions in the marketplace? Or should we provide specific extensions to be installed manually?

Building a tool to leverage the Language Server Protocol in general and VSCode's ~/.vscode/extensions as a server launch mechanism in particular

I am developing a free software code coverage tool that leverages LSP. I do not want to reinvent the wheel in order to specify and launch a particular language server. What seems to make sense is to use VSCode to obtain the LS extension from the marketplace which will establish an entry in ~/.vscode/extensions. Once I have the extension on my computer I would use it to launch the LS much as VSCode does.
So now I need to grok this extension format to develop a launcher inside my tool. I am looking for specs, examples, tutorials, code or other material that will help, especially from other developers who have done this already.
I am already quite familiar with the LSP spec and some Microsoft VSCode sites and articles, fwiw.
Perhaps a link to the VSCode source where it leverages an extension to launch a language server would be helpful.

What is WEBDAV?

I want to use WebDAv server to share files among systems and (iPod or iPhone) in my iphone project. To use it, do I have to use an individual webserver? Or is it a built in facility?
WebDAV is a way to share files through a web server, which includes functionality for file locking and versioning.
Presumably, you would run Apache or another WebDAV-savvy web server, enabling access to a folder and its contents through the setting of relevant permissions.
This service would be run on a server somewhere — such as a Mac OS X workstation, which has Apache installed by default — and which has files that you want to present to the outside world.
Your iPhone device would connect to the WebDAV server through a WebDAV client; for example, DAV-E. The client locates and displays a list of files and folders, allowing uploads and downloads.
It typically isn't a built-in facility, but can be enabled as an extension of existing webservers, e.g mod_dav for Apache, WebDAV publishing for IIS, etc.
Short for Web-based Distributed Authoring and Versioning.
WebDav is sometimes referred to as DAV.
An IETF standard set of platform-independent extensions to HTTP
It allows users to collaboratively edit and manage files on remote Web servers.
It features XML properties on metadata, locking - which prevents authors from overwriting each other's changes - namespace manipulation and remote file management.
To know more Visit the FAQ

what in general does the SCC API do?

I can't seem to find general documentation on the Microsoft SCC API. I don't want to wade through detailed documentation on the specific interfaces/methods/etc, I just would like to know what in general it allows and what concepts it uses. (edit: without having to download the whole SDK or applying for a license requiring an NDA.)
edit: what's the abstraction layer that it sees in common between different systems? e.g. there's files and changesets? or just files? and each file has a name?
As I understood it, you had at one time to be a Microsoft Partner to get at the SCC API SDK which would've included the documentation however, I later found that they had relaxed that requirement. AFAIK this API describes the interface between Visual Studio and an SCC provider. So it would allow you to write a provider to allow Visual Studio to interact with a version control system. Microsoft examples would be the SourceSafe provider and probably the Team System provider. A non-Microsoft example would be the Visual SVN plugin for Subversion.

publishing your own Symbol site for WinDbg

This is an interesting challenge and I am not sure if anyone out there has undertaken it. I work for a software vendor, selling a large enteprise scale Microsoft.NET based software. Most of the production issues are triaged using DebugDiag or ADPlus dmp files. Our customers often ask us if we could publish our symbols public like Microsoft's http://msdl.microsoft.com/download/symbols site. Any guidance here is much appreciated.
thanks
You need to set you Symbols Store using Symstore.exe. Then you can expose it over HTTP by configuring IIS. You can optionally use SymProxy to expose multiple stores as one HTTP symbols server. You can also use SymSrv to connect to different public symbols server, setup local cache and other advanced stuff.
And of course, you can even build your own symbols server DLL through the Symbols Server API.
There is an app for that: SymStore.exe. It is part of Windbg suite. You should also include the symbols drop step to your build process so it publishes symbols for every release.