Ferramenta de download de símbolo (dotnet-symbol)
Este artigo se aplica ao: ✔️ SDK do .NET Core 2.1 e versões posteriores
Instalar
Para instalar a versão mais recente do pacote NuGet dotnet-symbol
, use o comando dotnet tool install:
dotnet tool install --global dotnet-symbol
Sinopse
dotnet-symbol [-h|--help] [options] <FILES>
Descrição
A ferramenta global dotnet-symbol
baixa os arquivos (símbolos, DAC, módulos etc.) necessários para depuração de despejos e minidespejos de núcleo. Isso pode ser útil ao depurar despejos capturados em outro computador. dotnet-symbol
pode baixar os módulos e os símbolos necessários para analisar o despejo.
Opções
--microsoft-symbol-server
Adicionar o caminho do servidor de símbolos
http://msdl.microsoft.com/download/symbols
(padrão).--server-path <symbol server path>
Adicionar um servidor de símbolos ao caminho do servidor.
authenticated-server-path <pat> <server path>
Adicionar um servidor de símbolos autenticado ao caminho do servidor usando um PAT (token de acesso pessoal).
--cache-directory <file cache directory>
Adiciona um diretório de cache.
--recurse-subdirectories
Processar arquivos de entrada em todos os subdiretórios.
--host-only
Baixar apenas o programa host (ou seja, o dotnet) que o lldb precisa para carregar despejos de núcleo.
--symbols
Baixar os arquivos de símbolo (.pdb, .dbg, .dwarf).
--modules
Baixar os arquivos do módulo (.dll, .so, .dylib).
--debugging
Baixar os módulos especiais de depuração (DAC, DBI, SOS).
--windows-pdbs
Forçar o download dos PDBs do Windows quando os PDBs portáteis também estiverem disponíveis.
-o, --output <output directory>
Definir o diretório de saída. Caso contrário, escrever ao lado do arquivo de entrada (padrão).
-d, --diagnostics
Habilitar a saída de diagnóstico.
-h|--help
Mostra a ajuda da linha de comando.
Baixar símbolos
A execução de dotnet-symbol
em um arquivo de despejo baixa por padrão todos os módulos, símbolos e arquivos DAC/DBI necessários para depurar o despejo, incluindo os assemblies gerenciados. Como o SOS agora pode baixar símbolos quando necessário, a maioria dos despejos de núcleo do Linux pode ser analisada usando o lldb apenas com o host (dotnet) e os módulos de depuração. Para obter esses arquivos necessários para diagnosticar um despejo de núcleo com o lldb execute:
dotnet-symbol --host-only --debugging <dump file path>
Solucionar problemas
Erro 404 Não Encontrado durante o download de símbolos.
O download de símbolos só é compatível com as versões oficiais do runtime do .NET Core adquiridas por meio de canais oficiais, como o site oficial e as origens padrão nos scripts de instalação do dotnet. Um erro 404 ao baixar arquivos de depuração pode indicar que o despejo foi criado com um runtime do .NET Core de outra origem, por exemplo, uma origem local ou para uma distribuição específica do Linux ou de sites da comunidade como o archlinux. Nesses casos, o arquivo necessário para depuração (dotnet, libcoreclr.so e libmscordaccore.so) deve ser copiado dessas origens ou do ambiente em que o arquivo de despejo foi criado.