Comment générer le fichier core dump dans Ubuntu [dupliquer]
cette question a déjà une réponse ici:
- comment générer un dump de noyau sous Linux quand un processus a un défaut de segmentation? 10 réponses
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 ?
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?
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) .