¿Dónde buscar el archivo principal generado por el bloqueo de una aplicación de Linux?


18

Estoy tratando de averiguar el motivo del bloqueo de una de mis aplicaciones de Linux. Pero no sé a dónde va el núcleo.

cat /proc/sys/kernel/core_pattern
core.%e.%p

¿Alguna idea?

Respuestas:


22

El volcado del núcleo se escribe en el directorio actual del proceso en el momento del bloqueo.

Por supuesto, los volcados de núcleo deben estar habilitados, de forma predeterminada, estos están normalmente deshabilitados. Compruebe la salida de ulimit -c, si eso es 0, entonces no se escribirá ningún archivo central. Ejecutar ulimit -c unlimitedpara habilitar volcados de núcleo; Esta es una configuración por proceso que es heredada por los procesos iniciados por ese proceso.

Si se hubiera generado un volcado de núcleo pero no sabe dónde, entonces podría comenzar el proceso nuevamente (si lo hará sin fallar de inmediato), luego verifique su directorio de trabajo haciendo ls -l /proc/$pid/cwddónde $pidestá el ID del proceso. Ese enlace apuntará al directorio de trabajo actual de ese proceso. Lo más probable es que el basurero estará allí. De lo contrario, debe ejecutar finden todo el sistema ...


3
He comprobado que ulimit -c es ilimitado, pero aún no hay nada en el directorio actual del proceso.
dcds

1
Es posible que la aplicación haya detectado un error fatal en sí mismo y haya sido abortado, es decir, no es un bloqueo "real", como una violación de segmentación o similar, lo que generaría un volcado del núcleo. Como no proporciona información sobre la aplicación, no es posible saberlo.
wurtel

1
Definitivamente es un accidente porque a sabiendas estoy haciendo un puntero nulo.
dcds

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.