Поиск и устранение неисправностей приложения зависает на Mac OS X

Я получал много вращающихся надувных мячей недавно в различных приложениях на OSX. Они, кажется, происходят с большой частотой при щелчке правой кнопкой, но это не ограничивается отдельным приложением. Это происходит в Safari, Adium, NetNewsWire, и т.д. Мое шестое чувство - то, что существует то, что существует некоторое общее средство/плагин/стандартная программа, вызывающее это, вероятно, от некоторого стороннего расширения или чего-то еще, что я включил.

Что лучший способ состоит в том, чтобы пойти о попытке диагностировать этот вид проблемы? Я могу так или иначе вывести подвешенное приложение для наблюдения то, что оно пытается сделать? Есть ли некоторые вещи, которые я могу сделать для разыскивания то, что могло бы вызывать это.

3
задан 19.08.2009, 18:50

3 ответа

Одна утилита для разыскивания зависает, назван Регулированием вращения, которое установлено с Инструментами Разработчика Apple в /Developer/Applications/Performance Tools папка. После того как Вы открываете его, и приложение зависает, это попросит Ваш пароль и начнет собирать данные. Однажды сбои приложения или становится быстро реагирующим снова, можно посмотреть на отчет, который это собрало.

Detected Hangs

Sample Report

Можно ввести по абсолютному адресу через отчет и посмотреть на перечисленные вызовы, которые являются всеми вещами, которые программа делала (расположенные с отступом объекты являются подвызовами). Число рядом с каждым объектом в списке, кажется, сколько времени было проведено в том вызове, поэтому при рассмотрении названий их (по крайней мере, понятные), Вы можете подбирать некоторую информацию относительно того, что занимало много времени. При нахождении чего-то, в чем Вы не уверены, можно также спросить об этом конкретно.

И, если сбои приложения при нажатии на кнопку "Report" Вы получите подобный список вещей, программа делала, когда это отказало, в дополнение к ошибке, которая была повышена. При рассмотрении описания ошибки и взгляда около конца списка вызовов можно, вероятно, выяснить то, что пошло не так, как надо.

6
ответ дан 07.12.2019, 23:00
  • 1
    Кроме того, можно попробовать подобную вещь Акулой, также установленной с инструментами разработчика. – jtbandes 17.07.2009, 02:25
  • 2
    IIRC, ни один из этих инструментов не является частью установки по умолчанию OS X – необходимо будет загрузить инструменты разработчика с developer.apple.com или диска установки OS X (их стоит иметь и ни в коем случае не ограничены используемые только "разработчиками") – David Snyder 17.07.2009, 02:30
  • 3
    Это корректно, они не установлены по умолчанию. Загрузка является обычно приблизительно парой гигабайтов, но поскольку Вы сказали, это довольно стоит того. – jtbandes 17.07.2009, 02:33

Спасибо за ответы они были очень полезны. jtbandes дал мне первый шаг в решении проблемы, но я хотел вдаваться в подробности других частей в случае, если это помогает другим.

Я смог заставить проблему происходить довольно восстанавливаемым способом с Adium. В основном запустите приложение, откройте разговор, введите в некотором тексте и затем щелкните правой кнопкой по части текста. Счетчик в первый раз после запуска, длящегося больше минуты.

Таким образом, я запустил Регулирование вращения, вошел в предпочтения для предназначения только для Adium, выполнил процедуры для порождения проблемы. Смог получить отчет текста о проблеме и нашел то, что я ожидал, была проблема:

    5531 Thread_7203
  5531 0x30b9
    5531 0x3192
      5531 NSApplicationMain
        5531 -[NSApplication run]
          5531 -[NSApplication sendEvent:]
            5531 -[NSWindow sendEvent:]
              5531 -[NSTextView rightMouseDown:]
                5531 -[NSView rightMouseDown:]
                  5531 -[NSMenu _popUpMenuWithEvent:forView:]
                    5531 -[NSMenu _popUpContextMenu:withEvent:forView:]
                      5531 -[NSMenu _popUpContextMenu:withEvent:forView:withFont:]
                        5531 -[NSCarbonMenuImpl _popUpContextMenu:withEvent:forView:withFont:]
                          5531 _NSPopUpCarbonMenu1
                            5531 _NSPopUpCarbonMenu2
                              5531 _NSPopUpCarbonMenu3
                                5531 _ContextualMenuInsertItems
                                  5531 ContextualMenuInsertItems(MenuData*, unsigned short, AEDesc const*, ContextualMenuHelp const*, unsigned long*, OpaqueContextualMenuItemsRef**)
                                    5531 TContextualMenuPluginList::GetPlugins()
                                      5531 TContextualMenuPlugin::LoadContextualMenuPlugins(FSRef const&, __CFArray*)
                                        5531 TContextualMenuPlugin::LoadCMPluginsFromCFPlugin(FSRef const&, __CFArray*)
                                          5531 0x1d1ee0d6

Таким образом, действительно казалось, что я сталкивался с проблемой с плагином, но контекстом, в котором испытывают недостаток деталей который.

Таким образом, я повторно запустил Adium, но на этот раз я также имел открытый Монитор Действия и выбрал процесс и использовал, Осматривают->, Открывают Files и Ports для контроля то, с чем конкретно работало приложение. Когда я повторил шаги для генерации проблемы, я смог захватить следование из списка (обратите внимание, что новые открытые файлы/порты появляются в конце списка, таким образом, является самым легким найти проблему путем взгляда в конце списка):

/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Resources/English.lproj/Localized.rsrc
/Users/tim/Library/Contextual Menu Items
localhost:61506->localhost:26165

От этого я смог пройти объекты в своем локальном каталоге Context Menu Items и определить тот, вызывающий проблему.

Спасибо за справку.

4
ответ дан 07.12.2019, 23:00

Ну, это могло быть стороннее расширение, или это мог быть низкий поршень или медленный жесткий диск. Какой компьютер - это? Откройте "Установки системы". У Вас есть какие-либо значки под "Другим"? Откройте/Library/InputManagers. Есть ли там какие-либо файлы? Когда приложение зависает, сила вышла из него и нажимает на "Report". Отправьте журнал здесь.

1
ответ дан 07.12.2019, 23:00

Теги

Похожие вопросы