J'essaie de trouver la raison du plantage d'une de mes applications Linux. Mais je ne sais pas où va le cœur.
cat /proc/sys/kernel/core_pattern
core.%e.%p
Une idée?
J'essaie de trouver la raison du plantage d'une de mes applications Linux. Mais je ne sais pas où va le cœur.
cat /proc/sys/kernel/core_pattern
core.%e.%p
Une idée?
Le vidage de mémoire est écrit dans le répertoire courant du processus au moment du crash.
Bien sûr, les vidages mémoire doivent être activés, par défaut ceux-ci sont généralement désactivés. Vérifiez la sortie de ulimit -c
, si c'est 0, aucun fichier de base ne sera écrit. Exécutez ulimit -c unlimited
pour activer les vidages de mémoire; il s'agit d'un paramètre par processus hérité des processus démarrés par ce processus.
Si un vidage de mémoire devait avoir été généré mais que vous ne savez pas où, vous pouvez recommencer le processus (s'il le fait sans se bloquer immédiatement), puis vérifier son répertoire de travail en faisant ls -l /proc/$pid/cwd
où $pid
est l'ID de processus du processus. Ce lien pointera vers le répertoire de travail actuel de ce processus. Il y a de fortes chances que le vidage de mémoire soit là. Sinon, vous devez exécuter find
sur l'ensemble du système ...
Les systèmes utilisant systemd sont généralement configurés pour vider les cœurs vers
Vous pouvez utiliser la
coredumpctl
commande pour répertorier les vidages mémoire. Voir aussi no-more-coredumps-after-migration-to-systemdla source