Comment générer le fichier core dump dans Ubuntu [dupliquer]

cette question a déjà une réponse ici:

je voudrais savoir comment générer un fichier core dump dans Ubuntu. J'utilise Ubuntu 8.04.1 et gcc compilateur 4.2.3. J'ai écrit un programme C simple pour générer un dump de base. J'ai compilé le programme comme dans -- gcc-g badpointer.C. Quand j'exécute le programme son donne défaut de segmentation, mais aucun dump de noyau n'est généré. Quelles autres choses dois-je faire pour générer un fichier core dump ?

19
demandé sur user496934 2011-05-27 16:28:06

3 réponses

activez vos coredumps par:

ulimit -c unlimited

vérifier aussi:

$ sysctl kernel.core_pattern

pour voir où vos dumps sont créés (%e sera le nom du processus, et %t sera l'heure du système).

vous pouvez le changer dans /etc/sysctl.conf et ensuite recharger par sysctl -p .

vous pouvez le tester par:

sleep 10 &
killall -SIGSEGV sleep

si le dumping de core est réussi, vous verrez "(core dumped) " après le indication de défaut de segmentation.

voir aussi:

Comment générer une stacktrace quand mon gcc C++ application se bloque


Ubuntu

si vous avez Ubuntu, vos dumps sont créés par apport dans /var/crash , mais dans un format différent (éditer le fichier pour le voir).

s'il vous plaît lire la suite à:

https://wiki.ubuntu.com/Apport


OS X

dans OS X, vos dumps crash sont automatiquement créés par Crash Reporter sous forme de backtraces. Vous pouvez trouver ces fichiers crash en exécutant Console et en allant à la section "Rapports de Diagnostic de L'utilisateur" (sous le groupe "informations de Diagnostic et D'utilisation") ou vous pouvez les localiser dans ~/Library/Logs/DiagnosticReports .

les fichiers de base actuels sont générés en /cores .

lire la suite: comment générer des dumps core dans Mac OS X?

40
répondu kenorb 2017-05-23 12:26:24

Vérifiez la sortie de ulimit -c , si elle est 0, c'est pourquoi vous n'avez pas de noyau déchargé.

Utiliser

ulimit -c unlimited

pour permettre la création du noyau (peut-être remplacer unlimited par une limite de taille réelle pour être plus sûr) .

32
répondu Cédric Julien 2011-05-27 15:54:32

définit une taille de vidange de cœur max avec ulimit -c taille .

0
répondu lhf 2011-05-27 12:32:51