La création de core dumps sur Linux
Double:
Je suis en train de créer un core dump dans mon "Fedora Core release 3 (Heidelberg)".
[root@testserver test_core_dump]# uname-a
Linux testserver 2.6.12-1.1381_FC3 #1 Ven Oct 21 03:46:55 HAE 2005 i686 athlon i386 GNU/Linux
Je suis cette pour créer des core dumps.
Le problème est, /proc/sys/kernel/suid_dumpable n'est pas présent dans cette version. J'ai aussi vérifié ici /proc/sys/fs/suid_dumpable, mais suid_dumpable n'est pas présent.
1) Est-il un travail autour de cela?
2) Suis-je manqué quelque chose?
OriginalL'auteur Manohar | 2009-03-25
Vous devez vous connecter pour publier un commentaire.
Les instructions qui vous sont les suivants sont tout simplement à l'emporter sur les o/s limites qui peuvent vous empêcher d'obtenir un core dump.
La génération d'un core dump est une mince affaire, vous envoyez un signal au processus comme suit
Il y a beaucoup de choses, cependant, que peut empêcher que cela se produise, cependant, vous devriez essayer cette première et de voir si elle produit un core dump dans votre répertoire courant. Si le programme est interactif et n'a pas coincer le quitter signnal alors vous pourriez être en mesure de causer un core dump par l'envoi d'SIGQUIT le processus, ce qui est généralement liée à CTRL-\
La zone que vous rencontrez des problèmes dans le document référencé désigne les processus qui s'exécutent setuid/setguid si le processus n'est pas en cours d'exécution dans l'un de ces modes, alors vous pouvez ignorer cette étape. (Vous pouvez dire si le processus est en cours d'exécution setuid/setguid en regardant le fichier des autorisations de programme et d'examiner le bit setuid et setguid bits ce qui peut être fait par l'émission d'un ls-l de la commande et à la recherche de s dans la 4ème position (setuid) ou 7ème position (setgid) (exemple de setuid ci-dessous)
-r-sr-xr-x 1 root wheel 57616 28 Oct 03:28 /usr/bin/login
Avez-vous essayé de générer un noyau sans l'aide de l'étape qui n'est pas de travail et il a fait le travail?
Vous aurez besoin pour être en mesure d'écrire dans le répertoire que le processus est en cours d'exécution, ou le répertoire défini pour les vidages mémoire, si ce n'est pas le répertoire courant. Exécution en tant que root peut résoudre les problèmes d'autorisations.
OriginalL'auteur Steve Weet
Je ne suis pas sûr de comprendre ce que vous voulez. La page web que vous avez les références des pourparlers sur l'ACTIVATION de la core dumps, pas de déclenchement. Ne vous inquiétez pas sur le manque sysctl-mes les systèmes Linux ne l'ai pas et je peux heureusement vidage de carottes tout autour 🙂 voulez-vous créer un vidage de la mémoire pour un processus spécifique?
En dehors de SIGABRT, vous pouvez également essayer d'utiliser
gcore
:NOM
gcore - Générer un fichier de base pour un processus en cours d'exécution
SYNOPSIS
gcore [-o nom_fichier] pid
DESCRIPTION
gcore génère un fichier de base pour le processus spécifié par son IDENTIFIANT de processus pid. Par défaut, le fichier de base est écrite à la base.pid, dans le répertoire courant.
OriginalL'auteur ShiDoiSi
C'est un doublon de cette question. Le accepté de répondre à, et la celui ayant le plus de votes suggèrent ce qui suit:
Dans Bash:
et dans tcsh:
Dans ce cas, si un programme se bloque, le vidage du noyau sera créé dans un fichier appelé
core
où le programme a été exécuté.le vidage du noyau sera créé dans un fichier appelé noyau où le programme a été exécuté.
Pas exactement. Core dumps peuvent être créés dans un répertoire spécifique si vous avez configuré de cette manière. Vérifier /proc/sys/kernel/core_pattern pour voir si c'est votre cas.
OriginalL'auteur Nathan Fellman