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?

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.


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

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?

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.