J'ai activé une taille de fichier de base illimitée en utilisant ulimit:
ulimit -a
core file size (blocks, -c) unlimited
...
Je crois que j'ai déclenché un vidage de mémoire mais je ne trouve pas le fichier de base dans ma maison, var / ... etc ...
Savez-vous où Ubuntu configure l'emplacement de vidage principal?
ubuntu-14.04
jcalfee314
la source
la source
Réponses:
Je pense que c'est une chose plus noyau Linux qu'une chose Ubuntu spécifique. Check-out
Consultez la page de manuel du fichier principal
la source
/proc/sys/kernel/core_pattern
où l'on trouverait le fichier.cd /usr/share/apport/apport
ne marche pas.Par défaut, le noyau Ubuntu est configuré pour utiliser alloc pour consigner les coredumps. Vous pouvez remplacer cela en écrasant
/proc/sys/kernel/core_pattern
, consultez la section «Nommer les fichiers de vidage de mémoire» dansman core
pour plus de détails. Par exemple:echo '/tmp/core.%e.%p.%t' | sudo tee /proc/sys/kernel/core_pattern
Apport écrit les vidages de mémoire dans
/var/crash/_path_to_program.userid.crash
, MAIS il ne le fera que pour les applications installées à partir des référentiels principaux d'ubuntu apt.Plus d'informations sur alloc: https://wiki.ubuntu.com/Apport
la source
Sur Ubuntu 16.04.3 LTS, mon vidage de mémoire était situé à:
/var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000
Donc, pour l'exécuter
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
la source