Symbol files overview
Azure DevOps Services | TFS 2018 | TFS 2017
A symbol server is available with Azure Artifacts in Azure DevOps Services and works best with Visual Studio 2017 Update 4 or later. Team Foundation Server users and users without the Azure Artifacts extension can publish symbols to a file share using the Index Sources & Publish Symbols task.
To debug compiled executables, especially executables compiled from native code languages like C++, you need symbol files that contain mapping information to the source code. These files are created from source code during compilation and generally have the PDB (program database) extension. Azure Artifacts offers a dedicated symbols server to publish your symbols.
What's in a symbol file
Symbols contain a set of useful debugging information, including:
- publics and exports
- global symbols
- local symbols
- type data
- source indexes
- line numbers
Publishing symbol files
You can publish your symbols to different destinations by using the Index Sources and Publish Symbols task:
Consuming symbol files
Once the symbol files are published, you can use Visual Studio or WinDbg to consume the symbols to debug your application. The debugger will find the appropriate symbols using a unique ID that identifies the symbols associated with the binary.
Using symbols with NuGet packages
If your application uses the .NET standard NuGet packages, there are two ways to share your symbols. You can use NuGet to generate symbol packages (.snupkg), but these packages are only needed if you're publishing your symbols to SymbolSource.org or another external symbol host, or you can use the Index Sources and Publish Symbols task to publish your symbols to Azure Artifact's symbol server.
Sharing private symbols with Symbol Server
If you're publishing packages to Azure Artifacts, there's no need to use NuGet symbols packages. Instead, configure the Index Sources and Publish Symbols task to publish your symbols to the Artifact's symbols server.