Aplicación de descarga de símbolos (dotnet-symbol)
Este artículo se aplica a: ✔️ SDK de .NET Core 2.1 y versiones posteriores
Instalar
Para instalar la versión de lanzamiento más reciente del paquete NuGet de dotnet-symbol
, use el comando dotnet tool install:
dotnet tool install --global dotnet-symbol
Sinopsis
dotnet-symbol [-h|--help] [options] <FILES>
Descripción
La herramienta global dotnet-symbol
descarga archivos (símbolos, paquetes DAC, módulos, etc.) que son necesarios para la depuración de volcados y minivolcados de núcleo. Esto puede ser útil al depurar volcados de memoria capturados en otra máquina. dotnet-symbol
puede descargar los módulos y símbolos necesarios para analizar el volcado de memoria.
Opciones
--microsoft-symbol-server
Agrega la ruta de acceso del servidor de símbolos
http://msdl.microsoft.com/download/symbols
(valor predeterminado).--server-path <symbol server path>
Agrega un servidor de símbolos a la ruta de acceso del servidor.
authenticated-server-path <pat> <server path>
Agrega un servidor de símbolos autenticado a la ruta de acceso del servidor mediante un token de acceso personal (PAT).
--cache-directory <file cache directory>
Agrega un directorio de caché.
--recurse-subdirectories
Procesa archivos de entrada en todos los subdirectorios.
--host-only
Descarga solo el programa host (es decir, dotnet) que necesita lldb para cargar volcados de núcleo.
--symbols
Descarga archivos de símbolos (.pdb, .dbg, .dwarf).
--modules
Descarga archivos de módulo (.dll, .so, .dylib).
--debugging
Descarga módulos de depuración especiales (DAC, DBI, SOS).
--windows-pdbs
Fuerza la descarga de los archivos PDB de Windows cuando también hay archivos PDB portátiles disponibles.
-o, --output <output directory>
Establece el directorio de salida. De lo contrario, escribe "next" en el archivo de entrada (valor predeterminado).
-d, --diagnostics
Habilita la salida de diagnóstico.
-h|--help
Muestra la ayuda de la línea de comandos.
Descargar símbolos
De forma predeterminada, al ejecutar dotnet-symbol
en un archivo de volcado de memoria, se descargan todos los módulos, símbolos y archivos DAC/DBI necesarios para depurar el volcado, incluidos los ensamblados administrados. Dado que SOS ahora puede descargar símbolos cuando sea necesario, la mayoría de los volcados de núcleo de Linux se pueden analizar mediante lldb solo con los módulos host (dotnet) y de depuración. Para obtener estos archivos necesarios para diagnosticar un volcado de memoria con lldb, ejecute lo siguiente:
dotnet-symbol --host-only --debugging <dump file path>
Solución de problemas
Error "404 No encontrado" al descargar símbolos.
La descarga de símbolos solo se admite para las versiones oficiales del entorno de ejecución de .NET Core adquiridas a través de canales oficiales como el sitio web oficial y los orígenes predeterminados en los scripts de instalación de dotnet. Un error 404 al descargar archivos de depuración puede indicar que el volcado de memoria se ha creado con un entorno de ejecución de .NET Core desde otro origen, como uno compilado localmente desde el origen o para una distribución concreta de Linux, o bien desde sitios de la comunidad como archlinux. En estos casos, el archivo necesario para la depuración (dotnet, libcoreclr.so y libmscordaccore.so) se debe copiar desde esos orígenes o desde el entorno en el que se creó el archivo de volcado de memoria.