Symbol files overview

Azure DevOps Services | TFS 2018 | TFS 2017

Note

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.

Sharing public symbols on SymbolSource.org

If you're publishing your packages to NuGet.org, you can create symbol packages and publish them to SymbolSource.org.