10.4. Creación y acceso a un volcado del núcleo con coredumpctl
La herramienta coredumpctl
de systemd
puede agilizar significativamente el trabajo con los volcados de núcleo en la máquina donde se produjo el fallo. Este procedimiento describe cómo capturar un volcado de núcleo de un proceso que no responde.
Requisitos previos
El sistema debe estar configurado para utilizar
systemd-coredump
para el manejo de los volcados del núcleo. Para verificar que esto es cierto:$ sysctl kernel.core_pattern
La configuración es correcta si la salida comienza con lo siguiente:
kernel.core_pattern = |/usr/lib/systemd/systemd-coredump
Procedimiento
Encuentra el PID del proceso colgado, basado en una parte conocida del nombre del archivo ejecutable:
$ pgrep -a executable-name-fragment
Este comando mostrará una línea de la forma
PID command-line
Utilice el valor de command-line para verificar que el PID pertenece al proceso previsto.
Por ejemplo:
$ pgrep -a bc 5459 bc
Envía una señal de aborto al proceso:
# kill -ABRT PID
Verifique que el núcleo ha sido capturado por
coredumpctl
:$ coredumpctl list PID
Por ejemplo:
$ coredumpctl list 5459 TIME PID UID GID SIG COREFILE EXE Thu 2019-11-07 15:14:46 CET 5459 1000 1000 6 present /usr/bin/bc
Examine más a fondo o utilice el archivo del núcleo según sea necesario.
Puede especificar el volcado del núcleo por PID y otros valores. Consulte la página del manual coredumpctl(1) para obtener más detalles.
Para mostrar los detalles del archivo del núcleo:
$ coredumpctl info PID
Para cargar el archivo del núcleo en el depurador GDB:
$ coredumpctl debug PID
Dependiendo de la disponibilidad de la información de depuración, GDB sugerirá comandos a ejecutar, como por ejemplo
Faltan los debuginfos por separado, utilice: dnf debuginfo-install bc-1.07.1-5.el8.x86_64
Para más detalles sobre este proceso, consulte Sección 7.4, “Obtención de paquetes debuginfo para una aplicación o librería usando GDB”.
Para exportar el archivo de núcleo para su posterior procesamiento en otro lugar:
$ coredumpctl dump PID > /path/to/file_for_export
Sustituya /path/to/file_for_export por el archivo en el que desea colocar el volcado del núcleo.