J'ai un programme C++ qui fait ce qu'il est censé faire, mais il doit y avoir un problème de pointeur, car il se bloque à la fin et crée un vidage mémoire. Mon problème est que je ne peux pas trouver le fichier core, donc je ne peux pas le déboguer.
J'ai essayé
ulimit -c unlimited
ulimit -a
et maintenant la dimension du fichier est définie sur illimité, mais je ne parviens toujours pas à trouver le noyau. J'ai essayé dans chaque dossier écrit ici mais il semble toujours qu'aucun fichier de base n'est créé.
Où puis-je le trouver?
Dans Ubuntu, les core dumps sont gérés par Apport et peuvent être situés dans /var/crash/
. Mais il est désactivé par défaut dans les versions stables.
Pour activer Apport, exécutez: Sudo systemctl enable apport.service
ou Sudo service apport start
.
Pour désactiver, exécutez: Sudo systemctl disable apport.service
ou Sudo service apport stop
afin de revenir à la méthode de vidage de base standard. Voir: Comment activer ou désactiver Apport? .
Pour désactiver définitivement, éditez le fichier /etc/apport/crashdb.conf
et commentez la ligne suivante:
'problem_types': ['Bug', 'Package'],
en ajoutant un symbole de hachage (#
) au début de la ligne.
Pour désactiver le signalement des incidents (retour à la normale), supprimez le symbole dièse (identique à celui-ci).
Vous pouvez également vérifier core_pattern
, comment les vidages de base sont gérés par le noyau:
$ cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c
Ainsi, même les fichiers de base sont désactivés par ulimit
, apport
capturera toujours le blocage.
Voir également: