Où Ubuntu 14.04 dépose-t-il les fichiers de base?

20

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?

jcalfee314
la source
@djf l'OP n'a pas spécifié quel programme causait des vidages de mémoire. Ce n'est peut-être pas du code de programmeur. Ce peut être l'Unité pour tout ce que nous savons.
Rich Homolka
1
Comment est-ce une question SuperUser? Il s'agit d'exécuter un débogueur que seuls les programmeurs utilisent. Cela devrait être migré vers SO.
Homer6

Réponses:

7

Je pense que c'est une chose plus noyau Linux qu'une chose Ubuntu spécifique. Check-out

cat /proc/sys/kernel/core_pattern

Consultez la page de manuel du fichier principal

Rich Homolka
la source
13
Cela ne vous dit pas où il place le fichier. La question nommée Ubuntu 14.04. Ce n'est pas clair du tout en suivant la commande /proc/sys/kernel/core_patternoù l'on trouverait le fichier.
jcalfee314
1
Pour moi, ce pseudofile du noyau core_pattern fait référence à un programme appelé 'répart' ... qui n'a pas de page de manuel ni de sortie très utile. Donc, toujours à la recherche de mes cœurs sous-évalués. :(
gojomo
1
alloc est le gestionnaire de base de bureau Linux standard qu'il rapporte généralement à votre distribution.
kkron
Comment ouvrir ce dossier? cd /usr/share/apport/apportne marche pas.
mrgloom
32

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» dans man corepour 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

maccam94
la source
Pour écrire également les
vidages de mémoire
La modification de / proc / sys / kernel / core_pattern ne fonctionne pas pour moi dans Ubuntu 18.04
greuze
1

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

Homer6
la source