web-dev-qa-db-fra.com

Comment puis-je lire un fichier crash de / var / crash

php-fpm s'est écrasé sur nous et a vidé un fichier dans

/var/crash/_usr_sbin_php5-fpm.1002.crash

Il y a quelques informations dans ce fichier mais ce que je cherche, c’est dans la section intitulée CoreDump dans un format encodé en base64. Comment puis-je lire ce qui courait au moment de l'accident?

20
user76369

Il existe un outil appelé apport-retrace qui lit les fichiers .crash et vous permet de le remplir avec une trace de pile entièrement symbolique ou d'exécuter une session gdb en utilisant le vidage principal. Pour démarrer une session gdb, exécutez apport-retrace -g CRASHFILE.crash. Notez que les packages -dbg doivent être installés pour obtenir un bon suivi de la pile.

Cela étant dit (je ne suis pas un expert en PHP), il se peut que ce soit quelque chose que vous avez écrit dans l'un de vos fichiers qui cause le crash.

15
saiarcot895

Si vous ne souhaitez pas installer un ensemble de sous-dépendances pour l'outil apport-retrace, vous pouvez décompresser le format ADN dans des fichiers distincts et utiliser uniquement le vidage CoreDump avec gdb comme d'habitude.

  1. apport-unpack systemGeneratedCrashReportPath.crash yourNewUnpackDirectoryHere
  2. cd yourNewUnpackDirectoryHere/
  3. gdb `cat ExecutablePath` CoreDump(faites attention aux tildes ici!)
  4. bt (sortie de trace réelle)

    Remarque: apport-unpack se bloque parfois lui-même lors d'une opération de décompression (une somme semble cassée de partout ... xD), mais votre CoreDump et d'autres fichiers sont présents. Ignorez-le et supprimez tous les fichiers .crash dans /var/crash après les avoir déplacés ailleurs. pour permettre au système de générer de nouveaux rapports d'incident à partir des mêmes applications.

15
stamster