J'ai activé une taille de fichier core illimitée avec ulimit:
ulimit -a
core file size (blocks, -c) unlimited
...
Je pense avoir déclenché un vidage de la mémoire mais je n'arrive pas à localiser le fichier de base dans ma maison, var/... etc ...
Savez-vous où Ubuntu configure l'emplacement de la sauvegarde?
Par défaut, le noyau Ubuntu est configuré pour utiliser la méthode répart pour journaliser les coredumps. Vous pouvez remplacer ceci en écrasant /proc/sys/kernel/core_pattern
, consultez la section "Dénomination des fichiers de vidage principaux" dans man core
pour plus de détails. Par exemple:
echo '/tmp/core.%e.%p.%t' | Sudo tee /proc/sys/kernel/core_pattern
Apport écrit les core dumps dans /var/crash/_path_to_program.userid.crash
, MAIS il ne le fera que pour les applications installées à partir des principaux référentiels d'ubuntu.
Plus d'infos sur apport: https://wiki.ubuntu.com/Apport
Sur Ubuntu 16.04.3 LTS, mon core dump était situé à:
/var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000
Donc, pour l'exécuter dans gdb
, vous pouvez exécuter:
apt install gdb gdb /path/to/your/binary/application-name /var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000