Relatórios de falha
O que a estação guarda quando fecha de forma inesperada, o que ela envia e quando pergunta, e os dois comandos de depuração que uma compilação de desenvolvimento carrega.
Relatórios de falha é a única linha do grupo DIAGNÓSTICO na página Configurações. Uma falha nunca é enviada enquanto o aplicativo está caindo: ela é capturada num arquivo, e a partida seguinte ou a envia ou a mostra a você e pergunta. Esta seção guarda a única chave que decide qual das duas. A página exige a permissão Alterar configurações.
Enviar relatórios de falha automaticamente
| Campo | O que é | Valores / padrão | Efeito |
|---|---|---|---|
| Enviar relatórios de falha automaticamente | "Quando o aplicativo falhar, envia o relatório na próxima inicialização sem perguntar. Desligado: o relatório é mostrado e a pergunta vem antes." | Ligada ou desligada. Desligada por padrão. | Ligada: a partida seguinte envia o relatório capturado em silêncio e o limpa assim que o servidor o aceita. Desligada: a próxima partida visível abre o diálogo de consentimento. |
Enquanto o runtime está parado esta página não é desenhada (veja Configurações). A mesma adesão é oferecida dentro do próprio diálogo de consentimento, como a caixa de seleção "Enviar sempre os relatórios de falha automaticamente", e marcá-la ali liga esta chave. Sob a chave o cartão diz: "Para relatar um defeito, sugerir uma melhoria ou pedir um driver, use a página Conta." Esse formulário é o Sua opinião, porque ele envia com a conta Ganter.
O que um relatório contém
Quando um erro não tratado derruba o aplicativo, os tratadores globais escrevem um arquivo, crash\pending-crash.json sob a raiz de dados da estação, e guardam só a falha mais recente. Ele guarda:
- a versão do aplicativo e a versão do Windows;
- onde o erro foi capturado (Dispatcher, AppDomain, TaskScheduler, ou Startup para uma partida que não terminou);
- o tipo da exceção, a mensagem dela e o texto completo da pilha, com as exceções internas incluídas;
- as últimas 60 linhas do arquivo de log mais novo, como contexto que leva à falha;
- o momento em que ela aconteceu.
Antes de o arquivo ser escrito, o nome de usuário do Windows e o caminho do perfil são substituídos por <user> e <userprofile> onde quer que apareçam. Essa limpeza é uma rede de segurança, não uma garantia: linhas de log em texto livre podem carregar outros nomes, e é por isso que o diálogo mostra a carga inteira antes de qualquer coisa sair.
O diálogo de consentimento na partida seguinte
Com a chave desligada, a primeira partida visível depois de uma falha abre Enviar o relatório de falha? sobre o shell: "O Ganter Lab fechou de forma inesperada na última vez. Enviar este relatório ajuda a corrigir o problema. Ele contém o erro e um trecho curto do diário recente. Revise o conteúdo abaixo antes de enviar." A caixa Detalhe da falha mostra exatamente o que seria enviado, com um botão Copiar que põe o mesmo texto na área de transferência ("Copiado" por um instante) para você poder pesquisá-lo ou entregá-lo ao suporte. Se a área de transferência recusar, o botão passa a dizer "A cópia não funcionou", para que uma cópia que não aconteceu não seja tomada por uma que aconteceu; o texto continua na tela para você selecionar à mão.
| Comando | O que ele faz | Esmaecido quando (situação) | Não aparece quando (papel) |
|---|---|---|---|
| Enviar sempre os relatórios de falha automaticamente (caixa de seleção) | Liga a chave acima quando o diálogo fecha, tenha você enviado este relatório ou não. | Enquanto o runtime está parado (dica "Runtime parado"). O diálogo pertence ao shell, então ele ainda é desenhado quando esta página não é. | Nunca. |
| Não enviar | Descarta este relatório e limpa o arquivo; você não é perguntado de novo sobre ele. | Nunca. | Nunca. |
| Enviar o relatório | Envia o relatório. "Relatório de falha enviado" como notificação no sucesso; "Relatório de falha não enviado" com a razão quando o servidor não pôde ser alcançado, caso em que o arquivo fica e você pode enviá-lo agora ou é perguntado de novo na partida seguinte. | Nunca. | Nunca. |
Uma partida escondida na área de notificação (o Iniciar com o Windows, ou uma abertura com --tray) não mostra diálogo nenhum; o relatório espera pela próxima partida visível. Com a chave ligada, o envio acontece em segundo plano sem diálogo, e uma estação que estava offline guarda o arquivo e tenta de novo na partida seguinte.
O relatório vai para o endpoint de feedback do servidor da Ganter. Ele é atribuído à conta Ganter autenticada na página Conta quando há uma, e aceito sem conta no resto dos casos. Nada mais sai da estação: não há telemetria de uso.
Os comandos de depuração
Uma compilação de desenvolvimento do aplicativo carrega dois botões sob a chave; uma versão instalada não carrega nenhum dos dois.
| Comando | O que ele faz | Esmaecido quando (situação) | Não aparece quando (papel) |
|---|---|---|---|
| Simular uma falha (depuração) | Lança um erro não tratado na thread da interface, para que o caminho de captura escreva um arquivo de falha de verdade e a partida seguinte exercite o fluxo de consentimento. | Nunca. | Não numa compilação de versão. |
| Capturar tela (depuração) | Roda a mesma captura de tela que as ferramentas de interface do agente usam, dentro do processo, e escreve o resultado sob o botão: "Salvo: <path>" ou "Falha na captura: <reason>". Num hospedeiro sem janela, o resultado diz que a captura está indisponível. |
Nunca. | Não numa compilação de versão. |
O que esta seção não faz
Não há visualizador de log aqui: o diário mora nos Eventos, na aba Console deles, junto com a captura de diagnóstico e o pacote de suporte. Os relatos de defeito e os pedidos estão em Sua opinião. O arquivo de falha não é editável pelo aplicativo, e o aplicativo nunca envia nada sem a chave ou sem o Enviar do diálogo.