Dove cercare il file core generato dal crash di un'applicazione Linux?


18

Sto cercando di scoprire il motivo del crash di una mia applicazione Linux. Ma non so dove sta andando il core.

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

Qualche idea?

Risposte:


22

Il dump principale viene scritto nella directory corrente del processo al momento del crash.

Naturalmente i core dump devono essere abilitati, per impostazione predefinita quelli sono generalmente disabilitati. Controlla l'output di ulimit -c, se è 0, non verrà scritto alcun file core. Esegui ulimit -c unlimitedper abilitare i core dump; questa è un'impostazione per processo ereditata dai processi avviati da quel processo.

Se un core dump avrebbe dovuto essere generato ma non sai dove, allora potresti riavviare il processo (se lo farà senza arrestarsi immediatamente), quindi controlla la sua directory di lavoro facendo ls -l /proc/$pid/cwddov'è $pidl'ID del processo. Tale collegamento indicherà la directory di lavoro corrente di quel processo. È probabile che la discarica principale sarà lì. Altrimenti devi eseguire findsull'intero sistema ...


3
Ho controllato ulimit -c è illimitato, ma non c'è ancora nulla nella directory corrente del processo.
CD

1
E 'possibile che l'applicazione ha rilevato un errore fatale se stessa e interrotta, vale a dire che non è un "vero" crash come ad esempio una violazione di segmentazione o simile, che avrebbe generare un core dump. Poiché non si forniscono informazioni sull'applicazione, non è possibile saperlo.
Wurtel,

1
È sicuramente un incidente perché sto facendo consapevolmente un puntatore nullo.
CD

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.