Я получал много вращающихся надувных мячей недавно в различных приложениях на OSX. Они, кажется, происходят с большой частотой при щелчке правой кнопкой, но это не ограничивается отдельным приложением. Это происходит в Safari, Adium, NetNewsWire, и т.д. Мое шестое чувство - то, что существует то, что существует некоторое общее средство/плагин/стандартная программа, вызывающее это, вероятно, от некоторого стороннего расширения или чего-то еще, что я включил.
Что лучший способ состоит в том, чтобы пойти о попытке диагностировать этот вид проблемы? Я могу так или иначе вывести подвешенное приложение для наблюдения то, что оно пытается сделать? Есть ли некоторые вещи, которые я могу сделать для разыскивания то, что могло бы вызывать это.
Одна утилита для разыскивания зависает, назван Регулированием вращения, которое установлено с Инструментами Разработчика Apple в /Developer/Applications/Performance Tools
папка. После того как Вы открываете его, и приложение зависает, это попросит Ваш пароль и начнет собирать данные. Однажды сбои приложения или становится быстро реагирующим снова, можно посмотреть на отчет, который это собрало.
Можно ввести по абсолютному адресу через отчет и посмотреть на перечисленные вызовы, которые являются всеми вещами, которые программа делала (расположенные с отступом объекты являются подвызовами). Число рядом с каждым объектом в списке, кажется, сколько времени было проведено в том вызове, поэтому при рассмотрении названий их (по крайней мере, понятные), Вы можете подбирать некоторую информацию относительно того, что занимало много времени. При нахождении чего-то, в чем Вы не уверены, можно также спросить об этом конкретно.
И, если сбои приложения при нажатии на кнопку "Report" Вы получите подобный список вещей, программа делала, когда это отказало, в дополнение к ошибке, которая была повышена. При рассмотрении описания ошибки и взгляда около конца списка вызовов можно, вероятно, выяснить то, что пошло не так, как надо.
Спасибо за ответы они были очень полезны. 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 и определить тот, вызывающий проблему.
Спасибо за справку.
Ну, это могло быть стороннее расширение, или это мог быть низкий поршень или медленный жесткий диск. Какой компьютер - это? Откройте "Установки системы". У Вас есть какие-либо значки под "Другим"? Откройте/Library/InputManagers. Есть ли там какие-либо файлы? Когда приложение зависает, сила вышла из него и нажимает на "Report". Отправьте журнал здесь.