J'utilise la commande gdb "attach" pour déboguer un processus mais après le crash du processus (sigkill) je ne peux pas voir la trace de la pile (commande "bt" dans gdb): (gdb) bt Aucune pile. Comment puis-je voir la trace de la pile après que le processus a été détruit?comment puis-je voir la trace de la pile après le processus est tué?
6
A
Répondre
6
Définissez votre shell pour vider le cœur en vous assurant que ulimit -c
n'affiche pas une taille de noyau de 0. S'il indique 0, exécutez ulimit -c unlimited
. Ensuite, réexécutez votre programme jusqu'à ce qu'il se bloque et vide core, puis appelez:
gdb /path/to/executable /path/to/core
et tapez bt
pour obtenir le suivi de la pile.
De même, vous devrez compiler votre exécutable avec les informations de débogage activées. Si vous utilisez gcc
alors je vous suggère d'utiliser -ggdb3
pour ce faire.
comment puis-je savoir chemin à cœur? – nis
@nis il sera dans le répertoire de travail actuel. – mgiuca
Vous pouvez même modifier le fichier: /etc/sysctl.conf: variable: kernel.core_pattern =/tmp/core (Core File Path) pour définir le fichier core PATH – vrbilgi