XCode 6.1 и 6.1.1 Сбой в точке останова отладчика (Simulator)
У меня, как и многие другие, возникли проблемы с сбоем XCode 6+. Я получаю сбои SourceKit, а также полные сбои приложений. По прихоти я решил, что попробую 6.1.1 (центр разработчиков), и было хуже, теперь точка останова отладчика приводит к полному сбою приложения. Поэтому я сказал, забудьте об этом и вернемся к 6.1, но у меня все еще есть сбои при установке точки останова отладчика.
По-видимому, этот сбой с точкой останова влияет только на Симулятор, физические устройства устанавливаются и останавливаются на контрольных точках без проблем. Weird!
Это абсолютно безумие!! Кто-нибудь еще получает это?
Вещи, которые я пробовал:
- удалить/Application/Xcode.app/и ~/Library/Developer/*
- очистка проекта
- перезагрузил мой ноутбук.
- точка останова для выполнения на физическом устройстве (< < < ====== Это работает!!!)
- убой цыпленка и его распространение на всем протяжении
Глава трассировки стека:
Process: Xcode [7904]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 6.1 (6604)
Build Info: IDEFrameworks-6604000000000000~2
App Item ID: 497799835
App External ID: 752282650
Code Type: X86-64 (Native)
Parent Process: launchd [185]
Responsible: Xcode [7904]
User ID: 501
Date/Time: 2014-11-25 12:32:49.348 -0800
OS Version: Mac OS X 10.9.5 (13F34)
Report Version: 11
Anonymous UUID: E22980F9-B80B-F985-200A-FE471C623C56
Crashed Thread: 23 <DBGLLDBSessionThread (pid=7957)>
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000001409bdfd0
VM Regions Near 0x1409bdfd0:
Stack 000000014093b000-00000001409bd000 [ 520K] rw-/rwx SM=COW thread 22
--> STACK GUARD 00000001409bd000-00000001409be000 [ 4K] ---/rwx SM=NUL stack guard for thread 23
Stack 00000001409be000-0000000140a40000 [ 520K] rw-/rwx SM=COW thread 23
Application Specific Information:
ProductBuildVersion: 6A1052d
...
Thread 23 Crashed:: <DBGLLDBSessionThread (pid=7957)>
0 libsystem_pthread.dylib 0x00007fff90eb82cf __mtx_droplock + 17
1 libsystem_pthread.dylib 0x00007fff90eb88f3 pthread_mutex_unlock + 60
2 com.apple.LLDB.framework 0x000000011808f8be lldb_private::Mutex::Locker::~Locker() + 22
3 com.apple.LLDB.framework 0x00000001180ed55f GDBRemoteCommunication::CheckForPacket(unsigned char const*, unsigned long, StringExtractorGDBRemote&) + 2423
4 com.apple.LLDB.framework 0x00000001180ec99e GDBRemoteCommunication::WaitForPacketWithTimeoutMicroSecondsNoLock(StringExtractorGDBRemote&, unsigned int) + 88
5 com.apple.LLDB.framework 0x00000001181eeb1b GDBRemoteCommunicationClient::SendPacketAndWaitForResponse(char const*, unsigned long, StringExtractorGDBRemote&, bool) + 91
6 com.apple.LLDB.framework 0x00000001180f7574 ProcessGDBRemote::DoReadMemory(unsigned long long, void*, unsigned long, lldb_private::Error&) + 216
7 com.apple.LLDB.framework 0x00000001181a452a lldb_private::Process::ReadMemoryFromInferior(unsigned long long, void*, unsigned long, lldb_private::Error&) + 94
8 com.apple.LLDB.framework 0x0000000118171889 lldb_private::ProcessStructReader::ProcessStructReader(lldb_private::Process*, unsigned long long, lldb_private::ClangASTType) + 561
9 com.apple.LLDB.framework 0x0000000118169082 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 354
10 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
11 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
12 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
13 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
14 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
15 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
16 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
17 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
18 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
...
Ответы
Ответ 1
На протяжении многих лет было предложено множество решений для такого рода причудливого поведения XCode, поэтому я включил все эти шаги... однако я добавил несколько своих собственных (когда они сделаны вместе и по порядку) никогда не переставали разрешать каждую странную проблему XCode, с которой я столкнулся...
ОБРАТИТЕ ВНИМАНИЕ: Выполнение ВСЕХ этих шагов (по порядку) может быть КРИТИЧЕСКИМ... Я понимаю, что некоторые из них на первый взгляд кажутся излишними или, как они не должны иметь значения, но мой опыт показал, что каждый шаг играет роль в возвращении XCode в надлежащий рабочий порядок. Поэтому я НЕ рекомендую пропустить какие-либо шаги или изменить их порядок.
С учетом сказанного, если вы обнаружите необходимость в настройке приведенных ниже шагов, пожалуйста, разместите комментарий... XCode постоянно меняется, поэтому эти шаги также могут потребоваться с изменениями со временем.
После сбоя XCode:
1) Если симулятор все еще работает, убедитесь, что перед его закрытием выберите IOS Simulator → Reset Content And Settings.
2) Закрыть симулятор (CMD-Q)
3) Окно → Органайзер → Удалить производные данные
4) При отладке на ЛЮБЫХ устройствах удалите приложение с устройства и полностью запустите устройство.
5) Запустить XCode
6) Удалить все точки останова
7) Продукт → (удерживайте клавишу Alt/опцию) Очистить папку сборки
8) Продукт → Очистка
9) Закройте XCode снова с помощью XCode- > Quit XCode (ПРИМЕЧАНИЕ: должен быть GRACEFUL Выход, поэтому XCode может правильно выполнить полный цикл выключения/очистки)
10) Перезагрузите Mac
11) Запустить Xcode
12) Если вы работаете в симуляторе, выберите другое устройство для имитации, чем при его сбое.
13) Пройдите пробный запуск вашего приложения (без точек останова)
14) Если все идет хорошо, начните добавлять точки останова (все исключения всегда являются хорошей отправной точкой).
HAIL MARY CLAUSE (также известный как "The Corbomite Maneuver" ). Если все вышеописанное не было выполнено, повторите все вышеперечисленные шаги еще раз, но вставьте следующий шаг между шагами 9 и 10:
9A) Удалите приложение XCode и переустановите XCode.