Compartir a través de


Laboratorio 4.1 Análisis de archivos de volcado de núcleo después de copiarlos en otra máquina

Se aplica a: .NET Core 2.1, .NET Core 3.1, .NET 5

En este artículo se describe cómo copiar archivos de volcado de núcleo de la máquina Linux a otro. Por ejemplo, recopilará archivos de volcado de núcleo de Linux y, a continuación, los copiará en una máquina virtual (VM) Windows para analizarlos.

Requisitos previos

El requisito mínimo para seguir esta sección es tener al menos un volcado de memoria principal capturado en el entorno de Linux de las secciones anteriores de este entrenamiento. Puede usar cualquier archivo de volcado de memoria principal generado por la herramienta createdump o dotnet-dump.

Objetivo de este laboratorio

Hasta ahora en los módulos de entrenamiento, ha recopilado archivos de volcado de núcleo en Linux y los ha abierto en depuradores en la misma máquina virtual Linux. ¿Qué ocurre si no puede analizar los volcados de memoria en la misma máquina virtual? Normalmente, recopilaría archivos de volcado de memoria principales del entorno de producción con la intención de solucionar un problema. Pero esto no se recomienda. Además, no siempre es posible ejecutar la sesión de depuración en el mismo equipo de producción.

Para solucionar este problema, esta serie de laboratorio tratará las siguientes opciones para analizar el archivo de volcado principal que se recopila en una máquina virtual Linux:

  • Use dotnet-dump para analizar el archivo de volcado de núcleo en una máquina virtual Linux que se ejecuta dentro del entorno del subsistema de Windows para Linux (WSL).
  • Use dotnet-dump para analizar el archivo de volcado principal en una máquina virtual Linux que se ejecuta dentro de un contenedor de Docker.

Los ejercicios siguientes se basan en una máquina virtual basada en Windows 10 que se usó para hospedar un contenedor de Docker y entornos WSL2.

En esta primera parte del laboratorio, se le guiará a través del procedimiento de copia de archivos de volcado de núcleo desde una máquina virtual Linux a una máquina virtual Windows mediante el pscp comando . Este laboratorio también abordará los métodos para copiar archivos que no se recomiendan.

Copia de un archivo de volcado de núcleo en la máquina virtual local

Durante los ejercicios de este entrenamiento para depurar una aplicación principal con errores ASP.NET, generó tres archivos de volcado de memoria manuales. Ahora, aprenderá a copiar esos archivos de volcado de memoria principal en una máquina virtual Windows.

Captura de pantalla del comando ll.

Recuerde que un archivo de volcado de memoria principal contiene la memoria del proceso. Por lo tanto, el tamaño de un volcado de memoria principal podría ser grande si el uso de memoria del proceso es alto. En lugar de copiar cada archivo de volcado de núcleo uno por uno, puede optimizar la transferencia. Para ello, empaquete y comprima con el comando tar para que tenga un archivo coredumps.tar.gz comprimido que contenga los tres archivos de volcado de memoria principales.

Como se muestra en la captura de pantalla siguiente, puede usar el tar -czvf coredumps.tar.gz coredump.manual.* comando para crear el archivo comprimido.

Captura de pantalla del comando tar.

En el ejemplo anterior, el archivo de archivo coredumps.tar.gz se encuentra en la carpeta dump files del directorio de la home máquina virtual Linux. El objetivo es copiar en la /home/UserName/coredumps.tar.gz carpeta d:\Learn\Linux\Dumps en la máquina virtual Windows de destino.

Hay varias maneras de copiar archivos desde una máquina virtual Linux. Ya debería estar familiarizado con una de las opciones: Uso del pscp comando en la máquina virtual Windows. Si ha seguido toda la serie, debe recordar este comando de la parte 2.5: copiar archivos desde el entorno de desarrollo a una máquina virtual Linux y, a continuación, extraer los archivos en Linux.

Nota:

Para los lectores que no han trabajado en la parte 2.5 de esta serie: presenta PuTTY y analiza las opciones de uso básicas.

Abra el Terminal Windows en la máquina virtual Windows. (Si lo prefiere, puede abrir una ventana del símbolo del sistema en su lugar. Sin embargo, se recomienda encarecidamente usar el Terminal Windows). A continuación, ejecute el siguiente comando para copiar el archivo en la máquina virtual:

pscp -i D:\Learn\Linux\BuggyAmb-Ubuntu-Training_key.ppk <UserName>@buggyamb:/home/<UserName>/dumps/coredumps.tar.gz D:\Learn\Linux\Dumps\coredumps.tar.gz

Nota:

De forma similar a PuTTY, pscp usa el formato de archivo PPK para la clave privada. Si solo tiene el archivo PEM y no tiene la PPK, puede convertir el formato PEM al formato PPK mediante la herramienta PuTTY Key Generator (PuTTYgen). Esto se explica detalladamente en la parte 1.1: Creación de una máquina virtual Linux en Azure y conexión a ella.

Como se muestra en la captura de pantalla siguiente, el comando copió correctamente el archivo coredumps.tar.gz en la máquina virtual local en la carpeta D:\Learn\Linux\Dumps .

Captura de pantalla del comando ahnetnb.

Otras opciones para copiar archivos desde Linux

Hay varios métodos para copiar archivos de Linux en una máquina virtual Windows. Una de las opciones obvias es instalar un servidor FTP en Linux y usar FTP para transferir los archivos a la máquina virtual Windows de destino. Si elige esta opción, asegúrese de configurar un FTP a través de una solución SSH para la seguridad y evite usar un protocolo FTP sin formato porque enviará el nombre de usuario, la contraseña y los datos en texto no cifrado.

Otra opción sería copiar los archivos de volcado de núcleo en la carpeta wwwroot de la aplicación ASP.NET Core y, a continuación, descargarlos mediante un explorador web. Esta es una idea muy mala. ¡Por favor, no pruebe esto! Un archivo de volcado de memoria principal contiene toda la memoria del proceso. Esto significa que cualquier información confidencial se incluiría en el archivo de volcado principal. Copiar estos archivos en un servidor web significa que expondrá la información confidencial dentro del archivo a cualquier persona que pueda acceder al servidor web, incluso si no comparte la dirección URL. Considere esto como una solución de último recurso debido a la exposición de la información que implica.

Después de una transferencia correcta, debe tener al menos un archivo de volcado de núcleo en la máquina virtual Windows. Ahora puede pasar a la siguiente parte para comprender cómo analizar los archivos de volcado.

Pasos siguientes

Laboratorio 4.2 Análisis de archivos de volcado de núcleo en otra máquina: uso de WSL para abrir archivos de volcado de núcleo