Je souhaite modifier l'emplacement par défaut des fichiers de vidage principaux de manière à ce que chaque fois qu'un vidage principal soit généré, il se place dans ce répertoire. De plus, est-il possible d'enregistrer le fichier de vidage sous le nom du fichier bloqué à cet emplacement?
Oui, ça l'est. Vous pouvez changer /proc/sys/kernel/core_pattern
pour définir le chemin utilisé pour générer le corefile. Pour 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
provoquerait la génération de tous les futurs fichiers core dans /tmp
et être nommé core_[program].[pid]
Avant de suivre les instructions de la réponse acceptée, il peut être intéressant 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 système assez complet de gestion des fichiers de base que vous souhaitez comprendre avant de le remplacer.
En bref, à propos:
/var/spool/abrt/
abrt-gui
/etc/abrt/abrt-action-save-package-data.conf
L’un des obstacles les plus courants à l’utiliser est de changer cette ligne dans le fichier de configuration:
ProcessUnpackaged = no
Changez-le en oui pour capturer les fichiers core à partir de vos processus homebrew, sinon, seuls les fichiers core seront capturés à partir des programmes installés par le gestionnaire de paquets.
[EDIT pour répondre à l'utilisation de coredump] Pour examiner un fichier core, je fais ceci:
cd /var/spool/abrt/XXXXXXX
gdb $(cat executable) coredump
Il existe peut-être un meilleur moyen de le faire, mais gdb m’a bien servi et je n’ai donc pas cherché d’autres moyens. Il suffit de remplacer XXXXXXX par le dossier contenant votre fichier coredump. La commande gdb est prête à être copiée et collée.
Les références: