Trazer janela de mensagens de erro do OS X para a frente

4

No OS X, quando uma aplicação falha, aparece uma janela com um relatório de erro. Essa janela é por padrão inacessível por Command + Tab nem aparece no Dock. Claro, se por erro ou de propósito alguém clicar em outra janela, o relatório de erro irá para o fundo e se esconderá atrás das outras janelas.

Isso é realmente irritante, porque para vê-lo, eu vou ter que usar o Exposé e escanear 20 + Windows para encontrá-lo. (Não quero dizer que eu não goste mais do Exposé, já que o Snow Leopard fez com que os tamanhos das janelas parecessem confusamente iguais.)

Alguma idéia sobre como tornar os relatórios de erros Command + Tabbable?

    
por Debilski 06.12.2009 / 16:22

1 resposta

2

Pergunta divertida. Resposta curta:

sudo defaults write "/System/Library/CoreServices/Problem Reporter.app/Contents/Info" LSUIElement -bool false

Isso deve fazer com que o Problem Reporter apareça no Dock na próxima vez que for executado.

Como cheguei à resposta: quando ocorre uma falha, /System/Library/CoreServices/ReportCrash é executado por launchd de acordo com um dos com.apple.ReportCrash*.plist arquivos em /System/Library/Launch{Daemons,Agents}/ . Isso é responsável por gerar o relatório de falhas que você encontrará em [~]/Library/Logs/CrashReporter/ ou [~]/Library/Logs/DiagnosticReports .

Parece que o ReportCrash pode iniciar a exibição de uma caixa de diálogo similar à caixa de diálogo "Relatório de problema para o aplicativo" - contém a sequência "/System/Library/PrivateFrameworks/CrashReporterSupport.framework", que contém os recursos usados para localizar o texto exibido na janela de diálogo. Ele também contém chamadas para a API CFUserNotification . Mas o processo ReportCrash sai depois de um tempo, enquanto a caixa de diálogo continua a ser exibida. (A abordagem CFUserNotification provavelmente é um substituto no caso de _CROpenProblemReport , que tem a estrutura CrashReporterSupport private abrir o aplicativo que você está vendo, falhar.)

Adivinha o que continua correndo? %código%. Se você /System/Library/CoreServices/Problem\ Reporter.app este arquivo, a caixa de diálogo do relatório de problemas vem à tona. O motivo pelo qual você não pode ver isso na lista Dock ou Tabulação do Cmd é porque o arquivo Info.plist contém a entrada open .

Eu aposto que você pode fazer isso para que você possa vê-lo no Dock e no Cmd-Tab, alterando o valor de LSUIElement = 1 para LSUIElement in <false/> .

    
por 02.12.2010 / 16:28

Tags