Como posso ler um arquivo de travamento de / var / crash

11

php-fpm caiu em nós e jogou um arquivo em

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

Existem algumas informações nesse arquivo, mas o que eu estou procurando está na seção chamada CoreDump em um formato codificado em base64. Como posso ler o que estava em execução no momento da falha?

    
por user76369 15.03.2014 / 02:45

2 respostas

9

Existe uma ferramenta chamada apport-retrace que lê os arquivos .crash e permite preenchê-lo com um rastreamento de pilha totalmente simbólico ou executar uma sessão gdb usando o dump principal. Para iniciar uma sessão do gdb, execute apport-retrace -g CRASHFILE.crash . Note que você precisa ter os pacotes -dbg instalados para obter um bom rastreamento de pilha.

Dito isso (não sou especialista em PHP), pode ser algo que você escreveu em um de seus arquivos que está causando o travamento.

    
por saiarcot895 15.03.2014 / 03:08
4

Caso você não queira instalar um monte de sub-dependências para a ferramenta apport-retrace , você pode descompactar o formato do apport em arquivos separados e usar somente CoreDump dump com gdb como de costume.

  1. apport-unpack systemGeneratedCrashReportPath.crash yourNewUnpackDirectoryHere
  2. cd yourNewUnpackDirectoryHere/
  3. gdb 'cat ExecutablePath' CoreDump (preste atenção ao tils aqui!)
  4. bt (saída real de rastreamento)

    Nota: apport-unpack , às vezes, se desmorona na operação de descompactação (o suporte parece estar quebrado ao redor ... xD), mas seu CoreDump e outros arquivos estarão lá, ignore-o e exclua todos os arquivos .crash em /var/crash depois de movê-los para outro lugar, a fim de permitir que o sistema produza novos relatórios de falhas dos mesmos aplicativos lá.

por stamster 18.08.2017 / 18:10

Tags