Como você obtém os arquivos de diagnóstico do sistema no macOS?

20

Estou tentando depurar um aplicativo com falha (ou travando). Como obtenho os arquivos de diagnóstico da falha?

Stephen
fonte

Respostas:

19

Relatórios de falhas individuais são armazenados em ~ / Library / Logs / CrashReporter, mas existe uma ferramenta de coleta de logs em todo o sistema chamada sysdiagnose .

Depois de começar a enfrentar o problema, mantenha pressionadas as 4 teclas de controle e pressione o período "." chave. shift+ control+ option+ command+.

Após cerca de 15 segundos, uma janela do Finder será aberta com um arquivo sysdiagnose realçado.

Depois de começar a enfrentar o problema, mantenha pressionadas as teclas "shift" + "control" + "option" + "command" e pressione o período "."  chave.

Esse atalho simplesmente executa o sysdiagnosecomando; portanto, se você estiver familiarizado com o terminal e desejar passar um ID do processo, poderá obter informações aprimoradas de depuração sobre esse programa específico. O atalho de tecla chama a ferramenta sem argumentos e captura apenas o relatório básico.

Stephen
fonte
existe uma maneira de obter isso por linha de comando?
Sidasa
11
~/Library/Logs/CrashReporternão contém .crasharquivos. Em vez disso: /Library/Logs/DiagnosticReportse~/Library/Logs/DiagnosticReports
Graham Perrin
O acorde de teclas para sysdiagnose funcionará apenas se o daemon do stackshot for executado. Na minha resposta , o launchctlcomando iniciará o daemon.
Graham Perrin
o sysdiagnosecomando também está disponível no OS 10.6? Não encontro uma página de manual e which sysdiagnosenão retorna nada no OS 10.6.8, ou preciso instalá-la explicitamente?
precisa saber é o seguinte
11
@ Martin, minha resposta é editada para responder à sua pergunta.
Graham Perrin
16

Apple sysdiagnose

Esse script de shell (na versão 10.8 e inferior) e o programa executável com o mesmo nome na versão 10.9:

  • reúne informações de diagnóstico em todo o sistema
  • é parte integrante do OS X Lion e maior
  • não está disponível como um download separado
  • não é de código aberto (pedi à Apple para fazê-lo).

Preparando-se para a abordagem somente de teclado para sysdiagnose

No Terminal, execute o seguinte comando.

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.stackshot.plist
  • se for solicitada uma senha, digite sua senha de administrador para o sistema operacional
  • isso é único, não há necessidade de repetir o comando.

Faça uma anotação por escrito do seguinte acorde chave, você precisará dele mais tarde:

Control- Option- Command- Shift-.

Diagnóstico pelo sistema

Quando ocorre um problema:

  1. use o acorde da tecla
  2. por pelo menos dez segundos, não toque em nada
  3. aguarde cinco ou dez minutos para que todas as partes da sysdiagnoserotina sejam concluídas - basta esperar o máximo que puder (não haverá indicação de progresso na tela)
  4. O Finder deve abrir uma janela para o resultado final.

Excepcionalmente

Em casos raros, um problema pode impedir a conclusão do sysdiagnose (fiz sugestões de melhoria para a Apple). Se isso acontecer - se você tiver certeza de que esperou o suficiente - pode ser sensato reiniciar o Mac. Então:

  1. no Finder, vá para /private/var/tmp
  2. procure um arquivo ou pasta com um nome que comece sysdiagnose_
  3. se esse arquivo ou pasta existir, mova-o para um local conveniente - sua área de trabalho, talvez.

Dicas

Sem o acorde da tecla, você pode executar o sysdiagnose na linha de comando (veja abaixo, página de manual da Apple). Mas muitas vezes é mais útil ou necessário usar o acorde - portanto, esteja preparado.

Embora eu não incentive o descuido, você pode ser um pouco descuidado com Control- Option- Command- Shift- .... se você luta para evitar a fnchave do laptop, não se preocupe; incluí-lo por acidente não deve impedir a execução de sysdiagnose.


Análise humana do diagnóstico pelo sistema

Dica: alguém pode fazer uma pergunta separada sobre a análise dos resultados sysdiagnose- uma resposta mais generalizada pode ser útil.

Se sysdiagnose_… da /tmpárea for um arquivo

A presença de um sysdiagnose_….tar.gzarquivo indica que todas as partes da sysdiagnoserotina foram concluídas e que os resultados foram arquivados. Se desejar, abra o arquivo - seu conteúdo aparecerá como uma pasta.

Se sysdiagnose_… da /tmpárea for uma pasta

A presença de uma sysdiagnose_…pasta (não um .tar.gzarquivo) indica que:

  • a rotina foi interrompida antes da conclusão; ou
  • alguma parte da rotina não pôde ser concluída.

Dentro do arquivo / pasta

Alguns arquivos são legíveis por humanos e podem ajudar a solucionar um problema.

Outros arquivos são mais orientados ao desenvolvedor.

Relacionado:

Para uma execução incompletasysdiagnose , pode ser útil concentrar alguma atenção em arquivos que estão anormalmente vazios…


Notas técnicas e outras

Página manual do OS X do stackshot (1)

sysdiagnose (1) Página de manual do OS X

Parte do que está acima é uma edição mais genérica de uma resposta aceita que aparece em outro lugar.


Informações de diagnóstico e uso, outros arquivos de interesse

Seja guiado pela lista de registros no console:

Uma captura de tela da barra lateral do console

Espere encontrar arquivos nos seguintes caminhos:

  • ~ / Library / Logs / DiagnosticReports
  • / Biblioteca / Logs / DiagnosticReports
  • ~ / Biblioteca / Logs
  • / Biblioteca / Logs
  • / private / var / log
Graham Perrin
fonte
2
→ Graham: este é um dia +: algo para aprender! Eu acho que esse tipo de ferramenta beneficiaria todas as entradas do administrador de sistemas se fosse de código aberto.
dan
0

Console

Para encontrar arquivos de diagnóstico ou falha existentes, abra o aplicativo Console e encontre os arquivos nas seções Relatórios do usuário (localizados em ~/Library/Logs/DiagnosticReports) nas ou Relatórios do sistema (localizados em /Library/Logs/DiagnosticReports). Consulte: Onde posso encontrar meus logs de falhas?

sysdiagnose

De acordo com as sysdiagnoseinstruções oficiais do macOS, você pode ativar um sysdiagnose:

Nota: Para acessar o link acima, você precisa primeiro fazer login no site da Apple Developer .

  • Pressione brevemente as seguintes teclas simultaneamente:

    Command- Option- Shift- Control-Period (.)

    e espere. O sysdiagnoseprocesso pode levar 10 minutos para ser concluído. Uma vez terminado, o Finder deve aparecer automaticamente mostrando o arquivo gerado em /private/var/tmp/(por exemplo sysdiagnose_2017.mm.dd_hh-mm-ss-0000_12345.tar.gz).

  • Ative a sysdiagnosepartir do Terminal digitando este comando:

    sudo sysdiagnose
    

lixões centrais

Para gerar dumps principais de falhas, consulte: Como gerar dumps principais no macOS?

kenorb
fonte