Salut, je programme actuellement c ++ sur Ubuntu et je suis incapable de générer un vidage de mémoire avec une erreur de segmentation. Je reçois juste "faute de segmentation" et non le (vidage de mémoire) que j'ai défini ulimit -c illimité.
Avant, je pouvais générer des vidages mémoire, mais il y a quelque temps, ils ont cessé de venir. C'est peut-être parce que j'ai désactivé la répartition à cause de ce bogue "Désolé, Ubuntu 12.04 a rencontré une erreur interne." .
Je me demandais donc quelles étaient les autres étapes pour activer les vidages de mémoire après ulimit -c illimité?
Les coredumps doivent être activés dans le noyau à
/proc/sys/kernel/core_pattern
qui peut être fixé en permanence par
sysctl kernel.core_pattern=$coredump_name
par exemple.
sysctl kernel.core_pattern=core
sysctl kernel.core_pattern=/var/crash/%E.%p.%t.%s
%E
donne le chemin complet du programme bloqué (avec /
remplacé par !
)%p
donne l'ID de processus du programme bloqué%t
donne l'horodatage Epoch%s
donne le numéro du signal de terminaisonTous les détails sont dans man 5 core
.