5

В OS X, когда происходит сбой приложения, появляется окно с отчетом об ошибке. Это окно по умолчанию недоступно через Command+Tab и не отображается в Dock. Конечно, если по ошибке или преднамеренно щелкнуть другое окно, отчет об ошибке перейдет в фоновый режим и скроется за другими окнами.

Это действительно раздражает, потому что для того, чтобы увидеть его, мне придется использовать Exposé и сканировать более 20 Windows, чтобы найти его. (Нельзя сказать, что мне больше не нравится Exposé, так как Snow Leopard сделал размеры окон все до смешного одинаковыми.)

Любые идеи о том, как сделать отчеты об ошибках Command+Tabbable?

2 ответа2

3

Веселый вопрос. Короткий ответ:

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

Это должно привести к тому, что Problem Reporter появится в Dock при следующем запуске.

Как я пришел к ответу: Когда происходит сбой, /System/Library/CoreServices/ReportCrash запускается launchd соответствии с одним из com.apple.ReportCrash*.plist файлы в /System/Library/Launch{Daemons,Agents}/ . Это ответственно за генерацию отчета о сбое, который вы найдете в [~]/Library/Logs/CrashReporter/ или [~]/Library/Logs/DiagnosticReports .

Похоже, что ReportCrash может инициировать отображение диалогового окна, похожего на диалоговое окно "Отчет о проблемах для приложения" - оно содержит строку «/System/Library/PrivateFrameworks/CrashReporterSupport.framework», которая содержит ресурсы, используемые для локализации текст отображается в диалоговом окне. Он также содержит вызовы API-интерфейса CFUserNotification . Но процесс ReportCrash завершается через некоторое время, в то время как диалоговое окно продолжает отображаться. (Подход CFUserNotification скорее всего, является запасным вариантом в случае, если _CROpenProblemReport , в котором частная среда CrashReporterSupport открывает приложение, которое вы видите, не работает.)

Угадай, что продолжает работать? /System/Library/CoreServices/Problem\ Reporter.app . Если вы open этот файл, появится диалоговое окно с отчетом о проблеме. Причина, по которой вы не видите этого в Dock или в списке Cmd-Tab, заключается в том, что в его файле Info.plist есть запись LSUIElement = 1 .

Могу поспорить, что вы можете сделать это так, чтобы вы могли видеть его в Dock и Cmd-Tab, изменив значение LSUIElement на <false/> в /System/Library/CoreServices/Problem\ Reporter.app/Contents/Info.plist

0

Основываясь на первом ответе, я обнаружил, что эти наборы шагов в High Sierra выводят существующий репортер проблем на передний план.

GUI способ:

  1. Нажмите Command+Space чтобы начать поиск Spotlight
  2. Найдите /System/Library/CoreServices/Problem Reporter.app и дождитесь появления результата
    (поиск только Problem Reporter.app не раскроет это!)
  3. Нажмите Enter
  4. Теперь окна "Problem Reporter" находятся спереди и имеют фокус

Терминальный путь:

  1. Откройте окно терминала или вкладку
  2. Запустите open -a /System/Library/CoreServices/Problem\ Reporter.app
  3. Теперь окна "Problem Reporter" находятся спереди и имеют фокус

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .