Symbol downloader (dotnet-symbol)
This article applies to: ✔️ .NET Core 2.1 SDK and later versions
dotnet tool install --global dotnet-symbol
dotnet-symbol [-h|--help] [options] <FILES>
dotnet-symbol global tool downloads files (symbols, DAC, modules, etc.) needed for debugging core dumps and minidumps. This can be useful when debugging dumps captured on another machine.
dotnet-symbol can download modules and symbols needed to analyze the dump.
Add 'http://msdl.microsoft.com/download/symbols' symbol server path (default).
--server-path <symbol server path>
Add a symbol server to the server path.
authenticated-server-path <pat> <server path>
Add an authenticated symbol server to the server path using a personal access token (PAT).
--cache-directory <file cache directory>
Adds a cache directory.
Process input files in all subdirectories.
Download only the host program (that is, dotnet) that lldb needs for loading core dumps.
Download symbol files (.pdb, .dbg, .dwarf).
Download the module files (.dll, .so, .dylib).
Download the special debugging modules (DAC, DBI, SOS).
Force the downloading of the Windows PDBs when Portable PDBs are also available.
-o, --output <output directory>
Set the output directory. Otherwise, write next to the input file (default).
Enable diagnostic output.
Shows command-line help.
dotnet-symbol against a dump file will, by default, download all the modules, symbols, and DAC/DBI files needed to debug the dump including the managed assemblies. Because SOS can now download symbols when needed, most Linux core dumps can be analyzed using lldb with only the host (dotnet) and debugging modules. To get these files necessary for diagnosing a core dump with lldb run:
dotnet-symbol --host-only --debugging <dump file path>
404 Not Found while downloading symbols.
Symbol download is only supported for official .NET Core runtime versions acquired through official channels such as the official web site and the default sources in the dotnet installation scripts. A 404 error while downloading debugging files may indicate that the dump was created with a .NET Core runtime from another source, such as one built from source locally or for a particular Linux distro, or from community sites like archlinux. In such cases, file necessary for debugging (dotnet, libcoreclr.so, and libmscordaccore.so) should be copied from those sources or from the environment the dump file was created in.