Oui c'est le cas. Vous pouvez modifier /proc/sys/kernel/core_pattern
pour définir le chemin utilisé pour générer le corefile. Pour en savoir plus, voir man core
exemple :
echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern # `tee' instead of > so that
# opening happens in the
# elevated process
entraînerait la génération de tous les futurs vidages mémoire en /tmp
et être nommé core_[program].[pid]
Avant de suivre les instructions de la réponse acceptée, il peut être judicieux de vérifier le contenu de /proc/sys/kernel/core_pattern
pour voir si le système Redhat abrt est utilisé.
-> cat /proc/sys/kernel/core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
Si cela est utilisé, vous disposez déjà d'un schéma assez complet de gestion des fichiers principaux que vous voudriez comprendre avant de le remplacer.
En un mot, abrt :
- met les fichiers de base ici :
/var/spool/abrt/
- a une interface graphique qui est démarrée avec la commande
abrt-gui
- augmente le fichier core avec des informations supplémentaires sur le processus ayant échoué.
- est configuré avec ce fichier :
/etc/abrt/abrt-action-save-package-data.conf
Une pierre d'achoppement courante lors de son utilisation consiste à modifier cette ligne dans le fichier de configuration :
ProcessUnpackaged = no
Changez cela en oui pour capturer les fichiers principaux de vos processus homebrew, sinon il ne capturera que les fichiers principaux des programmes installés par le gestionnaire de paquets.
[MODIFIER pour répondre à l'utilisation de coredump]Pour examiner un vidage mémoire, je fais ceci :
cd /var/spool/abrt/XXXXXXX
gdb $(cat executable) coredump
Il y a peut-être un meilleur moyen de le faire, mais gdb m'a bien servi, donc je n'ai pas cherché d'autres moyens. Remplacez simplement XXXXXXX par le dossier qui contient votre fichier coredump. La commande gdb est prête à couper et coller.
Références :
Livre Redhat
Forum CentOS