GNU/Linux >> Tutoriels Linux >  >> Linux

Modification de l'emplacement du vidage mémoire

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 :

  1. met les fichiers de base ici :/var/spool/abrt/
  2. a une interface graphique qui est démarrée avec la commande abrt-gui
  3. augmente le fichier core avec des informations supplémentaires sur le processus ayant échoué.
  4. 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


Linux
  1. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  2. Linux - Quand utiliser /dev et /sys pour la communication espace utilisateur-noyau ?

  3. Linux - Pourquoi l'édition de Core_pattern est-elle limitée ?

  4. Commande de nettoyage du cache NFS ?

  5. monter dev, proc, sys dans un environnement chroot ?

Fichiers /proc/cpuinfo et /proc/meminfo sous Linux

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions

Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

Comment fonctionne /proc/* ?

Nombre de processeurs dans /proc/cpuinfo

Comment définir l'emplacement (et le nom) du fichier de vidage principal ?