Glossário/Quando algo dá errado

Spindump

Também: relatório de travamento

Resposta rápida

Um spindump é um relatório de diagnóstico que registra o que os processos de um Mac estavam fazendo, usado para investigar apps que travam ou param de responder. O macOS inclui a ferramenta spindump, e o Monitor de Atividade pode gerar um pelo menu Mais.

Um spindump é como uma amostra do sistema inteiro, e não de um único processo. Ele mostra quais threads estavam rodando ou esperando, o que ajuda um desenvolvedor a ver por que um app parou de responder.

No Monitor de Atividade, a Apple descreve o Spindump como a criação de um relatório para apps que não respondiam e foram terminados com Forçar Encerrar. É um dos vários relatórios de diagnóstico do menu Mais, junto com Extrair Amostra do Processo e Diagnóstico do Sistema.

Como gerar um spindump no Monitor de Atividade

Clique no botão Mais (os três pontos) no alto da janela do Monitor de Atividade e escolha Executar Spindump. Pode ser pedida uma senha de administrador. O relatório abre quando fica pronto, e você pode salvá-lo.

Gere o spindump enquanto o app está travado, não depois, para que o relatório registre o problema.

O que fazer com um spindump

Anexe-o a um relatório de bug para o desenvolvedor do app, ou para a Apple pelo Assistente de Feedback. O relatório pode incluir os nomes dos apps e processos que você está rodando, então revise-o antes de compartilhá-lo publicamente.

Como gerar um spindump pelo Terminal

O comando spindump extrai amostras de todos os processos do Mac, por isso precisa rodar como root. Ele só registra o que os processos estão fazendo e não os interrompe.

  1. Abra o Terminal enquanto o app ainda está travado.
  2. Execute sudo spindump Safari -reveal, trocando Safari por parte do nome do app. Digite a sua senha de administrador quando for pedida.
  3. Espere enquanto ele extrai as amostras. A duração padrão é de 10 segundos.
  4. Quando ele termina, o relatório é salvo em /tmp, e a opção -reveal o mostra no Finder.

Como ler um spindump

O app que você indicou aparece primeiro, e todos os outros processos vêm depois. Cada processo mostra as threads dele e as pilhas de chamadas vistas durante a amostragem.

  • Por padrão, as pilhas ficam ordenadas pela contagem. Uma linha que começa com 84 foi vista em 84 amostras.
  • Uma estrela (*) no começo de um frame indica código do kernel.
  • O frame mais profundo de cada pilha mostra se a thread estava rodando ou suspensa.
  • Se a thread principal do app estiver suspensa esperando outro processo, olhe esse outro processo no mesmo relatório. Essa é a grande vantagem em relação à amostra de um único processo.

Onde os spindumps ficam salvos

Quando você força o encerramento de um app que não respondia, o macOS pode gerar um relatório automaticamente e oferecer o envio à Apple. Esses relatórios ficam em /Library/Logs/DiagnosticReports.

Você pode vê-los no app Console, em Aplicativos > Utilitários. Em Relatórios, na barra lateral, olhe Relatórios de Spin e Relatórios de Diagnóstico. Selecione um relatório para lê-lo.

Os relatórios que você mesmo gera pelo Monitor de Atividade abrem em uma janela quando terminam. Salve o relatório nessa janela antes de fechá-la, para ter uma cópia para enviar.

Amostra, spindump ou Diagnóstico do Sistema

O menu Mais do Monitor de Atividade oferece vários relatórios. Escolha o que combina com o problema. Um spindump é bem maior que uma amostra porque inclui todos os processos, e o Diagnóstico do Sistema demora ainda mais e mostra um aviso de privacidade antes de rodar. Se um desenvolvedor pedir uma amostra, mande uma amostra. Se o Suporte da Apple pedir um relatório específico, mande esse.

  • Extrair Amostra do Processo: um processo, cerca de 3 segundos. Use quando você sabe qual app está travado ou ocupado.
  • Spindump: todos os processos do Mac. Use quando um app trava e a causa pode ser outro processo.
  • Diagnóstico do Sistema: um relatório maior, montado a partir de registros de todo o Mac, em geral pedido pelo Suporte da Apple.

Perguntas frequentes

O que é um spindump no Mac?

É um relatório de diagnóstico do que os processos estavam fazendo, usado para descobrir por que um app travou. Você pode gerar um pelo menu Mais do Monitor de Atividade.

Qual a diferença entre um spindump e uma amostra?

Extrair Amostra do Processo registra um único processo selecionado. Um spindump observa os processos do sistema todo, o que ajuda quando a causa de um travamento está fora do próprio app.

É normal o spindump usar muita CPU?

Ele pode usar CPU por pouco tempo enquanto escreve um relatório, muitas vezes depois que um app trava. Deve parar sozinho quando o relatório estiver pronto.

Por que o spindump pede a senha de administrador?

Ele lê as pilhas de chamadas de todos os processos do Mac, inclusive os do sistema. O macOS só permite isso ao root.

Posso gerar um spindump quando nada está travado?

Pode, mas ele só vai mostrar a atividade normal. Gere-o enquanto o app está travado, para que o relatório registre o problema.

Por que apareceu um spindump depois que forcei o encerramento de um app?

O macOS usa o spindump para registrar o que um app que não respondia estava fazendo quando foi forçado a encerrar. É esse relatório que a caixa de diálogo de “enviar à Apple” oferece para enviar.

Relacionados

Procurando algo melhor que o Monitor de Atividade? Veja as melhores alternativas ao Monitor de Atividade para Mac ou navegue por todos os termos do glossário.